第一天明明吃了一半加一 为什么第一天剩的和第一天摘的数量一样多
题目错了,正确可以这么写
#include <stdio.h>
int getPeachNumber(int n)
{
int num; //定义所剩桃子数
if(n==10)
{
return 1; //递归结束条件
}
else if(n<10&&n>0)
{
num = (getPeachNumber(n+1)+1)*2; //这里是不应该用递归呢?
printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
}
return num;
}
int main()
{
int num = (getPeachNumber(1)+1)*2;
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}
数学角度来说,题目错了,打印出来的结果应该是: 第9天所剩桃子4个 第8天所剩桃子10个 第7天所剩桃子22个 第6天所剩桃子46个 第5天所剩桃子94个 第4天所剩桃子190个 第3天所剩桃子382个 第2天所剩桃子766个 第1天所剩桃子1534个 猴子第一天摘了:3070个桃子。
把吃剩下的数量是要传递给第二天的