課程
/后端開發(fā)
/C
/C語言入門
運算到最后的時候不是n==1?為什么返回值不是1,而是遞歸的返回值??????
2016-09-08
源自:C語言入門 5-7
正在回答
因為在主方法main中調(diào)用了getWordNumber方法,當(dāng)函數(shù)走到int num = getWordNumber(10)時又會返回去調(diào)用getwordNumber方法;反復(fù)執(zhí)行直到滿足遞歸函數(shù)終結(jié)條件停止;
遞歸函數(shù)的執(zhí)行過程:執(zhí)行時遇到getWordNumber(10),保存當(dāng)前的n(n-1)+n以及getWordNumber(10)執(zhí)行完后的返回地址;然后繼續(xù)執(zhí)行,繼續(xù)對局部變量和函數(shù)返回地址入棧保存。直到遇到遞歸結(jié)束條件,開始彈棧,這是將棧頂n域值恢復(fù)給n,棧頂?shù)刂酚蜃鳛榉祷氐刂烦鰲?,繼續(xù)這樣下去,直到棧空,最終所得的n就是所要求得值。
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
3 回答這里的return 1 代表什么?是返回sum=1 嗎? 求大佬解釋
2 回答到最后明明應(yīng)該return 1;的啊,為什么返回值不是1呢?不懂!
5 回答最后為什么返回值是0就不行了
1 回答函數(shù)返回值代碼求解
5 回答(例題)return表示返回值,最后n是被1賦值,那最終不應(yīng)該為1么,為什么前面再怎么遞歸最終都為1 啊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-09-08
因為在主方法main中調(diào)用了getWordNumber方法,當(dāng)函數(shù)走到int num = getWordNumber(10)時又會返回去調(diào)用getwordNumber方法;反復(fù)執(zhí)行直到滿足遞歸函數(shù)終結(jié)條件停止;
遞歸函數(shù)的執(zhí)行過程:執(zhí)行時遇到getWordNumber(10),保存當(dāng)前的n(n-1)+n以及getWordNumber(10)執(zhí)行完后的返回地址;然后繼續(xù)執(zhí)行,繼續(xù)對局部變量和函數(shù)返回地址入棧保存。直到遇到遞歸結(jié)束條件,開始彈棧,這是將棧頂n域值恢復(fù)給n,棧頂?shù)刂酚蜃鳛榉祷氐刂烦鰲?,繼續(xù)這樣下去,直到棧空,最終所得的n就是所要求得值。