Рекурсия для факториала - C#

Узнай цену своей работы

Формулировка задачи:

Задание В класс MyMathClass поместите рекурсивную функцию Factorial() вычисления факториала натурального числа, которая будет принимать один аргумент типа int и будет возвращать результат типа int. Функция должна давать правильный результат и при нулевом аргументе (0! = 1) Не могу врубить, куда добавлять метод Factorial(), куда не добавлю вечно какая-то шляпа получается. Конечно тут всё понятно для для таких примеров не рекомендуется рекурсия, но хотелось бы разобрать в качестве примера. Я решил так
 class MyMathClass
    {
        static int Main() 
        {
            string a = Console.ReadLine();
            int b = Int32.Parse(a);
            Factorial(b);
 
            return 0;
        }
 
        static int Factorial(int a) 
        {
            int z = 1;
            do
            {
                if (a == 0)
                {
                    z = 1;
                }
                else
                {
                    z = a * z;
                    a = a - 1;
                }
 
            } while (a > 0);
            
            Console.WriteLine(z);
            return z;
        }
    }

Решение задачи: «Рекурсия для факториала»

textual
Листинг программы
class MyMathClass
{
    static void Main()
    {
        string a = Console.ReadLine();
        int b = Int32.Parse(a);
        Console.WriteLine("fact=" + Factorial(b));
    }
 
    static int Factorial(int a)
    {
        if (a == 0) return 1;
        return a * Factorial(a - 1);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы