亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

輸出結果是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;


正在回答

2 回答

最后的main少了一個結尾的},結果運行時120。不斷調用自身,等于是執行(n-1)*n,然后緊接著繼續執行((n-1)-1)*(n-1),然后不斷執行到等于1

0 回復 有任何疑惑可以回復我~
result=factorial(n-1)*n;

這句話里面的factorial(n-1)*n是調用函數。

相當于

factorial(5-1)*5

factorial(4-1)*5

factorial(3-1)*5

factorial(2-1)*5

factorial(1-1)*5

n=1結束

輸出120

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

輸出結果是1,為什么是120了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號