課程
/后端開發(fā)
/C
/C語(yǔ)言入門
求大神來解釋下這個(gè)例子..我覺得那個(gè)自定義函數(shù)只能算出5*4=20然后賦值給了return就算再循環(huán)return始終還是等于20啊
2016-09-21
源自:C語(yǔ)言入門 5-7
正在回答
自定義函數(shù)的名稱不好打,我以fac簡(jiǎn)寫啦~
最開始的時(shí)候調(diào)用fac(5)-->result = fac(5-1)*5-->暫停
接著調(diào)用fac(4)-->result = fac(4-1)*4-->暫停
再接著調(diào)用fac(3)-->result = fac(3-1)*3-->暫停
繼續(xù)調(diào)用fac(2)-->result = fac(2-1)*2-->注意程序要開始啦,因?yàn)楫?dāng)n=1的時(shí)候result等于1!
因?yàn)?? ?fac(1)的時(shí)候會(huì)return result=1,所以遞歸到這一步就要開始逐層返回了
第一步fac(2)的result = 2*(fac(1))=2
第二部fac(3)的result = 3*fac(2) = 6
第三部fac(4)的result = 4*fac(3) = 24
第四部fac(5)的result = 5*fac(4) = 120
至此遞歸函數(shù)結(jié)束,程序打印輸出120
明白了吧!自己要親手熟悉一下流程!以后碰到遞歸就不怕了~~
IT狂人_ 提問者
factorial階乘的意思,比如說4階乘,就是1*2*3*4=24,則24為4的階乘;階乘用“!”表示,而數(shù)學(xué)上定義,
0!=1,1!也等于1.
回歸正題
result=factorial(n-1)*n; ? n先為5,所以result=factorial(4)*5我們要求這個(gè)值,但factorial(4)我們也不知道這個(gè)值,那么也要求它,可以把4也帶進(jìn)去為factorial(3)*4......
以下列表
factorial(4)*5 ?
? ? ? ? ? ? ? ? /\
factorial (3)*4
? ? ? ? ? ? ? ?/\
factorial(2)*3
? ? ? ? ? ? ? /\
factorial(1)*2
factorial(0)*1 ?//可省略factorial(0)=factorial(1);
遞 (往下) ? ? ? ? ? ? ? ? ? 歸(往上)
知道了嗎?不懂再問,嘿嘿。
舉報(bào)
C語(yǔ)言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
2 回答例子沒看懂
3 回答看不懂這3個(gè)例子
1 回答例題最后沒看懂
3 回答左邊例子的第七點(diǎn)看不懂啊
2 回答看不懂呀!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-09-21
自定義函數(shù)的名稱不好打,我以fac簡(jiǎn)寫啦~
最開始的時(shí)候調(diào)用fac(5)-->result = fac(5-1)*5-->暫停
接著調(diào)用fac(4)-->result = fac(4-1)*4-->暫停
再接著調(diào)用fac(3)-->result = fac(3-1)*3-->暫停
繼續(xù)調(diào)用fac(2)-->result = fac(2-1)*2-->注意程序要開始啦,因?yàn)楫?dāng)n=1的時(shí)候result等于1!
因?yàn)?? ?fac(1)的時(shí)候會(huì)return result=1,所以遞歸到這一步就要開始逐層返回了
第一步fac(2)的result = 2*(fac(1))=2
第二部fac(3)的result = 3*fac(2) = 6
第三部fac(4)的result = 4*fac(3) = 24
第四部fac(5)的result = 5*fac(4) = 120
至此遞歸函數(shù)結(jié)束,程序打印輸出120
明白了吧!自己要親手熟悉一下流程!以后碰到遞歸就不怕了~~
2016-10-11
factorial階乘的意思,比如說4階乘,就是1*2*3*4=24,則24為4的階乘;階乘用“!”表示,而數(shù)學(xué)上定義,
0!=1,1!也等于1.
回歸正題
result=factorial(n-1)*n; ? n先為5,所以result=factorial(4)*5我們要求這個(gè)值,但factorial(4)我們也不知道這個(gè)值,那么也要求它,可以把4也帶進(jìn)去為factorial(3)*4......
以下列表
factorial(4)*5 ?
? ? ? ? ? ? ? ? /\
factorial (3)*4
? ? ? ? ? ? ? ?/\
factorial(2)*3
? ? ? ? ? ? ? /\
factorial(1)*2
? ? ? ? ? ? ? /\
factorial(0)*1 ?//可省略factorial(0)=factorial(1);
遞 (往下) ? ? ? ? ? ? ? ? ? 歸(往上)
知道了嗎?不懂再問,嘿嘿。