有人可以解釋我爲什麼這段代碼返回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的值! –