num = (getPeachNumber(n+1)+1)*2 ;是什么意思啊,看不懂这算式。
f(x)=f(x-1)/2-1 这是正推,变一下就是f(x)=(f(x)+1)*2
这个要记得这个地方从10开始推到1,再从1推到10,所以这个(getPeachNumber(n+1)+1)*2 是指n从1开始推到10再代出各项结果。
#include <stdio.h>
int getPeachNumber(n)
{
int num; //定义所剩桃子数
if(n==10)
{
return 1; //递归结束条件
}
else
{
num = (getPeachNumber(n+1)+1)*2 ; //这里是不应该用递归呢?
printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数
}
return num;
}
int main()
{
int num = getPeachNumber(1);
printf("猴子第一天摘了:%d个桃子。\n", num);
return 0;
}