課程
/后端開發(fā)
/C
/C語言入門
例題不明白。。。
2015-08-04
源自:C語言入門 5-7
正在回答
這就是“遞歸”,factorial函數(shù)中又調(diào)用了factorial。
遞歸函數(shù)中首先需要一個(gè)遞歸截止條件(if(n==0 || n==1)),再按照邏輯調(diào)用自己......直到某次調(diào)用時(shí)達(dá)到了截止條件,最深的這次調(diào)用的結(jié)果會(huì)返回,于是結(jié)果一路返回到最早的那次調(diào)用中,這樣就得到了這一串的結(jié)果。遞歸算是數(shù)學(xué)歸納法在編程上的應(yīng)用。
舉個(gè)例子:
架設(shè)你調(diào)用的是factorial(5),那么在函數(shù)中會(huì)跳到最后一個(gè)else處,又調(diào)用了factorial函數(shù),但這次的參數(shù)是5-1=4。注意,這次調(diào)用時(shí)factorial(5)還沒有返回。
在factorial(4)中又會(huì)調(diào)用factorial(3)......直到調(diào)用到factorial(2)。
在factorial(2)中會(huì)有這句 result =?factorial(1) * 2,這次調(diào)用factorial(1)會(huì)運(yùn)行到第二個(gè)else處(遇到了截止條件),函數(shù)直接返回1。那么factorial(2)中的result就是1*2=2,這樣factorial(2)就會(huì)再把2返回到factorial(3)......
一路返回到最初的factorial(5)中,result = factorial(4) * 5 這一句中的factorial(4)就包含了之前從1乘到4的結(jié)果,這樣再乘5,就得到了5的階乘。
菠蘿不困 提問者
最有效的解釋,很好理解贊
非常感謝?。?!
贊一個(gè)
很清晰~
解釋的清清楚楚,堪稱典范。
舉報(bào)
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
4 回答看不懂該怎么辦了
2 回答用char怎么就不先了
1 回答調(diào)用自身函數(shù)算階乘
1 回答看不懂怎么都看不懂
1 回答請(qǐng)教大佬,怎么調(diào)用不了?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-08-04
這就是“遞歸”,factorial函數(shù)中又調(diào)用了factorial。
遞歸函數(shù)中首先需要一個(gè)遞歸截止條件(if(n==0 || n==1)),再按照邏輯調(diào)用自己......直到某次調(diào)用時(shí)達(dá)到了截止條件,最深的這次調(diào)用的結(jié)果會(huì)返回,于是結(jié)果一路返回到最早的那次調(diào)用中,這樣就得到了這一串的結(jié)果。遞歸算是數(shù)學(xué)歸納法在編程上的應(yīng)用。
舉個(gè)例子:
架設(shè)你調(diào)用的是factorial(5),那么在函數(shù)中會(huì)跳到最后一個(gè)else處,又調(diào)用了factorial函數(shù),但這次的參數(shù)是5-1=4。注意,這次調(diào)用時(shí)factorial(5)還沒有返回。
在factorial(4)中又會(huì)調(diào)用factorial(3)......直到調(diào)用到factorial(2)。
在factorial(2)中會(huì)有這句 result =?factorial(1) * 2,這次調(diào)用factorial(1)會(huì)運(yùn)行到第二個(gè)else處(遇到了截止條件),函數(shù)直接返回1。那么factorial(2)中的result就是1*2=2,這樣factorial(2)就會(huì)再把2返回到factorial(3)......
一路返回到最初的factorial(5)中,result = factorial(4) * 5 這一句中的factorial(4)就包含了之前從1乘到4的結(jié)果,這樣再乘5,就得到了5的階乘。
2017-12-01
最有效的解釋,很好理解贊
2015-12-03
非常感謝?。?!
2015-10-12
贊一個(gè)
2015-09-06
很清晰~
2015-09-05
解釋的清清楚楚,堪稱典范。