課程
/后端開發
/C
/C語言入門
遞歸函數中,位于遞歸調用前的語句和各級被調用函數具有相同的執行順序 ?這句怎么理解?
2017-11-03
源自:C語言入門 5-8
正在回答
#include <stdio.h>int getPeachNumber(n){? ?int num; ? ?//定義所剩桃子數???if(n==10)? ?{? ? ? return 1;//遞歸結束條件? ?}?? ?else? ?{? ? ???num = (getPeachNumber(n+1)+1)*2; ??//這里是不應該用遞歸呢?? ? ? ?printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數? ?}? ?return num;}
當第一個變量n進入getPeachNumber遞歸函數時,首先變量n會先進入if 函數,不符合后進入else執行代碼塊。遞歸調用語句 num = (getPeachNumber(n+1)+1)*2; 中“getPeachNumber(n+1)”相當于再次進入函數getPeachNumber,這里n+1 相當于次級變量,它像變量n一樣首先要進入if函數進行判斷,然后執行其余代碼塊。這就是“位于遞歸調用前的語句和各級被調用函數具有相同的執行順序”的意思。?
慕函數409345 提問者
num = getPeachNumber(n+1)*2+2;
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答搞不懂這句話
1 回答if語句 這個看不懂
1 回答6-1有一句話看不懂 是打錯字了嗎
1 回答這句話有點不理解
3 回答這句話這么理解?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-11-03
#include <stdio.h>
int getPeachNumber(n)
{
? ?int num; ? ?//定義所剩桃子數
???if(n==10)
? ?{
? ? ? return 1;//遞歸結束條件
? ?}?
? ?else
? ?{
? ? ???num = (getPeachNumber(n+1)+1)*2; ??//這里是不應該用遞歸呢?
? ? ? ?printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數
? ?}
? ?return num;
}
當第一個變量n進入getPeachNumber遞歸函數時,首先變量n會先進入if 函數,不符合后進入else執行代碼塊。遞歸調用語句 num = (getPeachNumber(n+1)+1)*2; 中“getPeachNumber(n+1)”相當于再次進入函數getPeachNumber,這里n+1 相當于次級變量,它像變量n一樣首先要進入if函數進行判斷,然后執行其余代碼塊。這就是“位于遞歸調用前的語句和各級被調用函數具有相同的執行順序”的意思。?
2017-12-27
num = getPeachNumber(n+1)*2+2;