为什么我们不能直接在main
中使用它?
为什么要递归?为什么用递归找到数的阶乘?
#include<stdio.h>
int factorial(int n);
int main()
{
int n;
printf("Enter an positive integer: ");
scanf("%d",&n);
printf("Factorial of %d = %ld", n, factorial(n));
return 0;
}
int factorial(int n)
{
if(n!=1)
return n*factorial(n-1);
}
您不必使用递归。这是计算阶乘的一种方法。你也可以使用循环来做同样的事情。 –
你说得对,计算阶乘时不应该有任何递归。不幸的是,这是可以演示递归的最简单的例子之一,因此教师经常会为此付出代价,而没有声明不应该在这种情况下使用递归。 – dasblinkenlight
n == 1时该怎么办? – Michi