int factorial (int n)
{
if(n == 1)
{
return 1;
}
else
{
return n * factorial(n-1);
}
}
Console.WriteLine(factorial(10));
return 4 * factorial(3)
, будет шаг return 3 * factorial(2)
factorial(n - 1)
на предыдущей глубине, будет тем самым factorial (n)
для нового вызова функции. И так пока ты не дойдешь до терминального сценария (то есть то return 1
)return 4 * fact(4 - 1) == return 4 * (3 * (2 * 1))
return 3 * fact(3 - 1) == return 3 * (2 * 1)
return 2 * fact(2 - 1) == return 2 * 1
int n = 10;
int factorial = 1;
for (int i = 1; i <= n; i++)
factorial = factorial * i;