Metody

0

Witam mam dwa rodzaje kodów:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace temperatura
{
    class Program
    {
        static int Oblicz(int n)
        {
            if (n <= 1) return (1);
            else return (n + Oblicz(n - 1));
        }

        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(Oblicz(n));
            Console.ReadKey();
        }
    }
}

i

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace temperatura
{
    class Program
    {
        static int Oblicz(int n)
        {
            if (n <= 1) return (1);
            else return (n + n - 1);
        }

        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(Oblicz(n));
            Console.ReadKey();
        }
    }
}

Czym się różni widoczny fragment w metodzie Oblicz.
W pierwszej wersji (przy n = 5) wynik wynosi 15, natomiast w drugiej wersji 9. Co zmienia część "Oblicz()" przy wzorze?

dzięki za pomoc

pozdrawiam

0

Pierwszy kod wykorzystuje rekurencję.
Użyj debuggera i sprawdź co się dzieje w obu kodach.

1

Pierwsza metoda to rekreacja czyli wywołuje sama siebie

0

Rekurencja! !! Ach ten telefon

1 użytkowników online, w tym zalogowanych: 0, gości: 1