課程
/后端開發
/C
/C語言入門
求解釋的詳細點
謝謝大家
2018-11-26
源自:C語言入門 5-8
正在回答
哥,你頭像好騷啊
w鮮花哥哥w 回復 很社會的太陽 提問者
int?getPeachNumber(int?n){????int?num;????//定義所剩桃子數 ????if(n==10) ????{??????? ????????return?1; ????}? ????else ????{ ????????num?=?(getPeachNumber(n+1)+1)*2;???//這里是不應該用遞歸呢? ????????printf("第%d天所剩桃子%d個\n",?n,?num);?//天數,所剩桃子個數 ????}???? ????return?num; }
就以試題的遞歸函數來說:
if(n==10)
這個判斷語句,在調用遞歸之前,屬于遞歸調用前的語句,這沒問題吧。
printf("第%d天所剩桃子%d個\n",?n,?num);
這句輸出函數,在調用遞歸之后,屬于遞歸調用后的語句,這沒問題吧。
關于各個被調用函數的順序是什么樣的呢?
我們從?
int?num?=?getPeachNumber(1);
開始看,傳入的參數是 1,而遞歸終結是 n = 10。所以說各個被調用函數的順序應該是從 1 往 10 依次遞增的。
其中 if(n==10) 這句判斷語句就是按照從 1 往 10 依次判斷的。所以說:位于遞歸調用前的語句和各級被調用函數具有相同的執行順序;
而 我們再看?
它輸出 n 的順序卻是從 10 到 1 依次遞減。所以說:位于遞歸調用后的語句的執行順序和各個被調用函數的順序相反;
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答遞歸函數中,位于遞歸調用前的語句和各級被調用函數具有相同的執行順序; 遞歸函數中,位于遞歸調用后的語句的執行順序和各個被調用函數的順序相反
2 回答遞歸函數中,位于遞歸調用后的語句的執行順序和各個被調用函數的順序相反;
1 回答如何理解:遞歸函數中,位于遞歸調用前的語句和各級被調用函數具有相同的執行順序;
2 回答遞歸函數的語句執行順序特點
1 回答遞歸函數語句順序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-12-04
哥,你頭像好騷啊
2018-11-27
就以試題的遞歸函數來說:
這個判斷語句,在調用遞歸之前,屬于遞歸調用前的語句,這沒問題吧。
這句輸出函數,在調用遞歸之后,屬于遞歸調用后的語句,這沒問題吧。
關于各個被調用函數的順序是什么樣的呢?
我們從?
開始看,傳入的參數是 1,而遞歸終結是 n = 10。所以說各個被調用函數的順序應該是從 1 往 10 依次遞增的。
其中 if(n==10) 這句判斷語句就是按照從 1 往 10 依次判斷的。所以說:位于遞歸調用前的語句和各級被調用函數具有相同的執行順序;
而 我們再看?
它輸出 n 的順序卻是從 10 到 1 依次遞減。所以說:位于遞歸調用后的語句的執行順序和各個被調用函數的順序相反;