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

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

老師講的遞歸究竟應該怎么理解?

實例代碼中有這么一段

result?=?factorial(n-1)*n;

這個應該怎理解?當時

int?n?=?5;

那不是應該是?

result?=?factorial(5-1)*5;

(接上)最后結果等于20嗎?

請原諒,我并沒有學過數學遞歸


正在回答

2 回答

應該是(n-1)就用掉了一次再減一,又用掉了一次我是這么理解的

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

qq_淡末初夏_03336219 提問者

非常感謝!
2016-07-07 回復 有任何疑惑可以回復我~

result?=?factorial(5-1)*5;看作是result=(factorial(5-1))*(5);乘號左邊的factorial(5-1)是不是就是factorial(4),怎樣得到factorial(4)呢,這就又調用自定義函數 int?factorial(int n){ ? },參數n就變成4了,此時result?=?factorial(4-1)*4,同理乘號左邊因數factorial(4-1),即factorial(3)怎么算呢,就又調用自定義函數,參數n變為3,以此類推,實際上是先算出factorial(1),返回1,返回值帶入函數中算出factorial(2),再返回factorial(2)的值算出factorial(3),再返回直到算出factorial(5),這就是遞歸的思路。

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

qq_淡末初夏_03336219 提問者

太專業了,我更喜歡樓上的簡單粗暴O(∩_∩)O哈!,不過還是謝謝Y(^o^)Y
2016-07-10 回復 有任何疑惑可以回復我~
#2

斟酒獨酢

這樣一下理解了
2016-09-04 回復 有任何疑惑可以回復我~
#3

qq_Mi_1 回復 斟酒獨酢

加油!
2016-09-21 回復 有任何疑惑可以回復我~
查看1條回復

舉報

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

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

進入課程

老師講的遞歸究竟應該怎么理解?

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

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

幫助反饋 APP下載

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

公眾號

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