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

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

num = (getPeachNumber(n+1)+1)*2; 是什么意思?

#include <stdio.h>

int getPeachNumber(int n)

{

? ? int num;? ? //定義所剩桃子數

? ? if(n==10)

? ? {

? ? ? ? return 1;? ? ? ?//遞歸結束條件

? ? }?

? ? else

? ? {

? ? ? ??

? ? ? ? printf("第%d天所剩桃子%d個\n",? ,? ); //天數,所剩桃子個數

? ? }num = (getPeachNumber(n+1)+1)*2;? ?//? ? ???????????????????

? ? return num;

}

int main()

{

? ? int num = getPeachNumber(1);

? ? printf("猴子第一天摘了:%d個桃子。\n", num);

? ? return 0;

}


正在回答

2 回答

num = (getPeachNumber(n+1)+1)*2 的意思理解


最里面的小括號的“(n+1)”為遞歸加,即每次遞歸n的值+1,就是天數,為了獲取第10天已知的剩余桃子數量“1”;

先算算每天沒有吃桃子前剩余的桃子數量

第10天,剩余1個桃子;

第9天,剩余(1+1)*2=4個桃子;

第8天,剩余(4+1)*2=10個桃子;

第7天,剩余(10+1)*2=22個桃子;

第6天,剩余(22+1)*2=46個桃子;

....

根據條件,第10天只剩余1個桃子可以計算出第9天的桃子,

所以num = (getPeachNumber(n+1)+1)*2,使用的是“(n+1)”,是為了獲取遞歸結束條件返回的值“return 1;”就是數值1,

所以第9天的桃子數可以計算出來sum=?(getPeachNumber(9+1)+1)*2=(1+1)*2=4;

所以第8天的桃子數要根據第9天計算的數值來計算,可以計算出來sum=?(getPeachNumber(8+1)+1)*2=(4+1)*2=10;

所以第7天的桃子數要根據第8天計算的數值來計算,可以計算出來sum=?(getPeachNumber(7+1)+1)*2=(10+1)*2=22;

.......


所以該遞歸的計算過程全部過程應該是:

n=10時, num=1;

n=9時, num=(1+1)*2;

n=8時, num=((1+1)*2+1)*2;

n=7時, num=(((1+1)*2+1)*2+1)*2;

...

n=1時, num=(((((((((1+1)*2+1)*2+1)*2+1)*2+1)*2+1)*2+1)*2+1)*2+1)*2;

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

前一天的桃子樹是之后一天的兩倍+1

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

帆帆_imMP26

是加一兩倍
2024-11-18 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

num = (getPeachNumber(n+1)+1)*2; 是什么意思?

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

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

幫助反饋 APP下載

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

公眾號

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