遞歸函數(shù)還是很懵 求解答
猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過癮,就又多吃了一個(gè)。第二天又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天都吃前一天剩下的一半零一個(gè)。到第10天在想吃的時(shí)候就剩一個(gè)桃子了,問第一天共摘下來多少個(gè)桃子?并反向打印每天所剩桃子數(shù)。
在代碼編輯器中:
第7,11,12行根據(jù)注釋提示填寫代碼
運(yùn)行結(jié)果為:
#include <stdio.h>
int getPeachNumber(n)
{
??? int num;??? //定義所剩桃子數(shù)
??? if(n==10)
??? {
?????? ??????? //遞歸結(jié)束條件
??? }
??? else
??? {
??????? num = ?;?? //這里是不應(yīng)該用遞歸呢?
??????? printf("第%d天所剩桃子%d個(gè)\n", ?, ?); //天數(shù),所剩桃子個(gè)數(shù)
??? }
??? return num;
}
int main()
{
??? int num = getPeachNumber(1);
??? printf("猴子第一天摘了:%d個(gè)桃子。\n", num);
??? return 0;
}
2019-08-01
#include <stdio.h>
int getPeachNumber(n)
{
? ? int num;? ? //定義所剩桃子數(shù)
? ? if(n==10)
? ? {
? ? ? ?num=1;? ? ? ?//遞歸結(jié)束條件
? ? }?
? ? else
? ? {
? ? ? ? num = (getPeachNumber(n+1)+1)*2;? ?//這里是不應(yīng)該用遞歸呢?
? ? ? ? printf("第%d天所剩桃子%d個(gè)\n", n, num); //天數(shù),所剩桃子個(gè)數(shù)
? ? }
? ? return num;
}
int main()
{
? ? int num = getPeachNumber(1);
? ? printf("猴子第一天摘了:%d個(gè)桃子。\n", num);
? ? return 0;
}
哪里不懂再問我。
2019-07-31
就是高中高一教的遞歸函數(shù),要有一個(gè)初始值(類如n=1時(shí)函數(shù)值為多少)和一個(gè)規(guī)律(比如f(x)=f(x-1)+2)