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

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

輸出結果為什么不是從第一天到第九天,而是從第九天到第一天呢?希望看得懂的人可以為我詳細的講解下,感激不盡?。。?/h1>
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;
}
int?main()
{
????int?num?=?getPeachNumber(1);
????printf("猴子第一天摘了:%d個桃子。\n",?num);
????return?0;
}


正在回答

1 回答

因為遞歸是從第十天剩余1個桃子開始的,第九天的桃子數量是第十天的桃子+1再乘以2,依次遞歸直到第一天

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

imooc_粉絲 提問者

沒有答到要點上,你應該和主函數的int num = getPeachNumber(1);這個關聯啊
2016-09-14 回復 有任何疑惑可以回復我~
#2

JustWannaHugU 回復 imooc_粉絲 提問者

int num = getPeachNumber(1);不是傳入的1嗎?之后就一直getPeachNumber(n+1)...直到n+1=10, 然后到遞歸中止條件return 1了,這時開始逐層往上return 在這個過程中會print出桃子的數量,返回的順序正好與開始的順序相反
2016-09-14 回復 有任何疑惑可以回復我~
#3

JustWannaHugU 回復 imooc_粉絲 提問者

剛在游戲呢,你看這樣解釋行嗎
2016-09-14 回復 有任何疑惑可以回復我~
#4

imooc_粉絲 提問者 回復 JustWannaHugU

這個回答還差不多
2016-09-15 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

輸出結果為什么不是從第一天到第九天,而是從第九天到第一天呢?希望看得懂的人可以為我詳細的講解下,感激不盡?。。?/h1> 我要回答 關注問題

微信客服

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

幫助反饋 APP下載

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

公眾號

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