Рекурсия для факториала - 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);
}
}