課程
/后端開發
/C
/C語言入門
else里面的那個不明白,調用自身,factorial還沒定義有什么功能,factorial(n-1)*n什么意思
2016-10-05
源自:C語言入門 5-7
正在回答
else里面的那個不明白,調用自身,這個就是說0和1的結成是他本身所以返回1
自定義函數的名稱不好打,我以fac簡寫啦~
最開始的時候調用fac(5)-->result = fac(5-1)*5-->暫停
接著調用fac(4)-->result = fac(4-1)*4-->暫停
再接著調用fac(3)-->result = fac(3-1)*3-->暫停
繼續調用fac(2)-->result = fac(2-1)*2-->注意程序要開始啦,因為當n=1的時候result等于1!
因為 ? ?fac(1)的時候會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
至此遞歸函數結束,程序打印輸出120
明白了吧!自己要親手熟悉一下流程!以后碰到遞歸就不怕了~~
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答遞歸函數
2 回答遞歸函數
3 回答遞歸函數
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-05
else里面的那個不明白,調用自身,這個就是說0和1的結成是他本身所以返回1
自定義函數的名稱不好打,我以fac簡寫啦~
最開始的時候調用fac(5)-->result = fac(5-1)*5-->暫停
接著調用fac(4)-->result = fac(4-1)*4-->暫停
再接著調用fac(3)-->result = fac(3-1)*3-->暫停
繼續調用fac(2)-->result = fac(2-1)*2-->注意程序要開始啦,因為當n=1的時候result等于1!
因為 ? ?fac(1)的時候會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
至此遞歸函數結束,程序打印輸出120
明白了吧!自己要親手熟悉一下流程!以后碰到遞歸就不怕了~~