亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

看不懂這句話

遞歸函數中,位于遞歸調用前的語句和各級被調用函數具有相同的執行順序 ?這句怎么理解?

正在回答

2 回答

#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函數進行判斷,然后執行其余代碼塊。這就是“位于遞歸調用前的語句和各級被調用函數具有相同的執行順序”的意思。?

0 回復 有任何疑惑可以回復我~
#1

慕函數409345 提問者

非常感謝!
2017-11-04 回復 有任何疑惑可以回復我~

num = getPeachNumber(n+1)*2+2;

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       927005    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

看不懂這句話

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號