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

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

這個代碼看不懂

result=factorial(n-1)*n;

return result;


正在回答

2 回答

這個就是調用自身

在n是5的情況下,

result=factorial(4)*5

此時factorila(4)結果未知,繼續將factorila(4)代入函數

,factorila(3)結果又是未知的,以此類推

當n==1時,result結果為1,所以

當n==5時:

result=factorial(4)*5=factorial(3)*4*5=factorial(2)*3*4*5=factorial(1)*2*3*4*5=1*2*3*4*5=120


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

慕虎9034038

我有問題,就是當在n是5的情況下, result=factorial(4)*5 此時factorila(4)結果未知,繼續將factorila(4)代入函數 ,factorila(3)結果又是未知的,以此類推/ 當n==1時,result結果為1,那不就輸出為1了嗎
2020-02-25 回復 有任何疑惑可以回復我~
#2

慕函數1353974 回復 慕虎9034038

你說的不對啊,我看懂了,就是其實最后求得值是factorial(4)*5,然后把factorial代出來,但是并不是說輸出為1,而是計算機有辦法求值,所以它通過你列的函數會將未知的解出來
2020-02-28 回復 有任何疑惑可以回復我~
#3

慕函數1353974 回復 慕虎9034038

你懂了嗎
2020-02-28 回復 有任何疑惑可以回復我~
#4

qq_慕雪2531647 回復 慕虎9034038

不會輸出1的,你把它理解成一種嵌套,就和數學里的f(f(x)),factorial(4)里面包含了factorial(1)*2*3*4*5,而當n==1時,result結果為1,只是計算中的一步。
2020-02-29 回復 有任何疑惑可以回復我~
查看1條回復

進行四次遞歸調用后,實參的值為 1,會調用 factorial(1)。此時能夠直接得到常量 1 的值,并把結果 return,就不需要再次調用 factorial() 函數了,遞歸就結束了

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

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這個代碼看不懂

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

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

幫助反饋 APP下載

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

公眾號

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