在factorial
函數中執行的最後一個return語句是return 1;
它爲什麼返回正確的值而不是1?階乘回報聲明如何工作?
#include <iostream>
using namespace std;
unsigned int factorial(unsigned int);
int main()
{
unsigned int a=4;
cout<<factorial(a);
return 0;
}
unsigned int factorial(unsigned int a)
{
if (a==0)
return 1;
else
return a*(factorial(a-1));
}
'在階乘函數執行的最後一個return語句返回1;'這個陳述是不正確的。是什麼讓你覺得這是真的?我想你正在苦於遞歸的概念。真正的陳述是**第一個**返回語句是'1',最後一個是正確的值。 – john