有人可以解释我为什么这段代码返回0吗?为什么递归函数0的输出?
#include <stdio.h>
int factorial(int input)
{
if (input > 0)
{
input--;
return input * factorial(input);
}
return 1;
}
int main()
{
printf("%d", factorial(20));
return 0;
}
请注意,您需要'int64_t'来保存20的值! –