不知道程序錯(cuò)哪里了
#include <stdio.h>
int getPeachNumber(n)
{?
? ? int num;? ? //定義所剩桃子數(shù)
? ? if(n==10)
? ? {
? ? ? ?retutn 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;
}
2020-04-19
調(diào)用函數(shù)getPeachNumber時(shí)形參位置應(yīng)該加上類型。在遞歸計(jì)算挑子數(shù)時(shí)遵循的是:今天原有挑子數(shù)/2-1=今天剩下挑子數(shù)。遞歸遞歸,原理便是基于前或后一數(shù)據(jù)。程序中要求的挑子數(shù)為原有的,公式應(yīng)該是:(剩下+1)*2=原數(shù)
2020-07-05
?? ?retutn 1;? ? ? //遞歸結(jié)束條件, 這里的return寫錯(cuò)了!