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

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

例題中為什么n的值沒有變,卻能計算階乘呢。

例題中為什么n的值沒有變,卻能計算階乘呢。

正在回答

2 回答

long factorial(int n){

long result;


if(n==0 || n==1){

result = 1;

}else{

result = factorial(n-1) * n; ?// 遞歸調用

}


return result;

}

求 5!,即調用factorial(5)。當進入factorial函數體后,由于 n=5,不等于0或1,所以執行result = factorial(n-1) * n;,即result = factorial(5-1) * 5;,接下來也就是調用factorial(4)。這是第一次遞歸。

進行四次遞歸調用后,實參的值為 1,也就是調用factorial(1)。這時遞歸就結束了,開始逐層返回。factorial(1) 的值為 1,factorial(2) 的值為 1*2=2,factorial(3) 的值為 2*3=6,factorial(4) 的值為 6*4=24,最后返回值 factorial(5) 為 24*5=120。

希望能幫到你

9 回復 有任何疑惑可以回復我~
#1

慕先生6658929 提問者

非常感謝! 棒棒噠
2016-04-10 回復 有任何疑惑可以回復我~
#2

慕先生6658929 提問者

其實我剛發出去就理解了;感謝你的樂于助人
2016-04-10 回復 有任何疑惑可以回復我~

非常感激,這里解決了我的一大部分疑惑。

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

舉報

0/150
提交
取消

例題中為什么n的值沒有變,卻能計算階乘呢。

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

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

幫助反饋 APP下載

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

公眾號

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