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

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

為什么答案里面是倒著打印而不是從第一天開始打印

#include <stdio.h>
int getPeachNumber(n)
{
?? ?int num;??? //定義所剩桃子數
?? ?if (n == 10)
?? ?{
?? ??? ?return 1;//遞歸結束條件
?? ?}
?? ?else
?? ?{
?? ??? ?num = 2*(getPeachNumber(n+1)+1);?? //這里是不應該用遞歸呢?
?? ??? ?printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數
?? ?}
?? ?return num;
}
int main()
{
?? ?int num = getPeachNumber(1);
?? ?printf("猴子第一天摘了:%d個桃子。\n", num);
?? ?system("pause");
?? ?return 0;
}

正在回答

2 回答

數據結構棧中數據是先進后出的,遞歸也是一樣的,因此是倒著打印的,可以百度一下仔細看一下

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

在此代碼的遞歸中getPeachNumber(n+1)(簡稱為g(n))num=(g(n+1)+1)會使函數一直調用自己 當n==10的時候會得到一個返回值1并返回給g(9)當g(9)得到返回值后就會向下執行printf,執行完后再把值返回給g(8),g(8)再執行printf 以此類推 所以是倒過來打印的


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

舉報

0/150
提交
取消

為什么答案里面是倒著打印而不是從第一天開始打印

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

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

幫助反饋 APP下載

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

公眾號

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