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

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

桃子第幾天的數量是怎么打印的數量是怎么回事

n=1的結果不應該是(getpeachnumber (2)+1)*2+(getpeachnumber(3)+1)*2)+……+(getpeachnumber(9)+1)*2+(getpeachnumber(10)+1)*2嗎?
最后一項也等于4
請問getpeachnumber(1~9)的值是怎么算的?
還有 函數為什么自動從第九天開始打印了?為什么不是第100天?第1000天?

正在回答

3 回答

我琢磨了兩天,最后受不了了問了問嵌入式同事,他是這樣給我解釋的,那個getPeachNumber函數在第一次進圈開始套的時候,在getPeachNumber這個函數內程序跑到num=getPeachNumber這又跑一圈,一直跑到if那返回個num=1,才會繼續乘2+2

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

getPeachNumber(n)給出的結果sum是第n天在吃之前的桃子數量,也就是第(n-1)天吃完之后剩下的桃子數量。

getPeachNumber(n)自定義函數在main()函數中的第一個參數值是? 1? ?,自定義函數getPeachNumber(n)中的終止條件是? n==10。故不可能出現第100天,第1000天的情況。


getPeachNumber(n)自定義函數的if語句中,有一段

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

這是在自定義函數返回num結果之前就已經打印出來了的。


整個程序中,(n=1到10) 和( 當n=10時,num=1)這兩項數據是已知的,然后就是第n天和第n+1天,num的變化規律是知道的。? 要想知道第1天有多少桃子,只能從第10天有1個桃子,推算出第9天,有(1+1)*2=4個桃子,然后是第8天,有(4+1)*2=10個桃子……? ?同樣的,在遞歸函數中,最先計算出答案的也是第9天的桃子數量,同時可以將第9天的桃子數量打印出來,然后是第8天,第7天……

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

宥沐熙 提問者

哇 大神我悟了 謝謝
2021-11-01 回復 有任何疑惑可以回復我~

#include<stdio.h>
#include <windows.h>
void color(int x) //設置字體顏色
{
if (x >= 0 && x <= 15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
int getPeachNumber(int n)
{
int num=1; //定義所剩桃子數
if (n == 10)
{
return num; //遞歸結束條件
}
else
{
num = ((getPeachNumber(n+1))+1)*2;
printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數
}
return num;
}
int main()
{
color(2);
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d個桃子。\n", num);
return 0;
}

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

舉報

0/150
提交
取消

桃子第幾天的數量是怎么打印的數量是怎么回事

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

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

幫助反饋 APP下載

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

公眾號

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