Рекурсия для факториала - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д