輸出結果是1,為什么是120了?
#include<stdio.h>
int?factorial(int?n){
????int?result;
????if(n<0)
????{
????????printf("輸入錯誤!\n");
????????return?0;
????}
????else?if(n==0?||?n==1)
????{
????????result=1;
????}
????else
????{
????????result=factorial(n-1)*n;
????}
????return?result;
}
?
int?main(){
????int?n=5;
????printf("%d的階乘=%d\n",n,factorial(n));
????return?0;
2018-03-19
最后的main少了一個結尾的},結果運行時120。不斷調用自身,等于是執行(n-1)*n,然后緊接著繼續執行((n-1)-1)*(n-1),然后不斷執行到等于1
2017-11-11
這句話里面的factorial(n-1)*n是調用函數。
相當于
n=1結束
輸出120