num =(getPeachNumber(n)+1)*2; 这样做的话,和原来的差别体现在哪里?我本意是想再打印出第十天所剩桃子1个,怎么打印出来
if(n==10)
{
printf("第10天所剩桃子1个\n");
return 1; //递归结束条件
}
这样不就好喽?
#include <stdio.h>
float getPeachNumber(n)
{
float num; //定义所剩桃子数
if(n==11)
{
return num=-0.5; //递归结束条件
}
else
{
num =(getPeachNumber(n+1)+1)*2 ; //这里是不应该用递归呢?
printf("第%d天所剩桃子%.0f个\n", n,num ); //天数,所剩桃子个数
}
return num;
}
int main()
{
float num = getPeachNumber(1);
printf("猴子第一天摘了:%.0f个桃子。\n", num);
return 0;
}
这样写就行了
这样的话是手动输入的,我的意思是自动输出的。就像第9天所剩桃子4个
第8天所剩桃子10个
第7天所剩桃子22个
第6天所剩桃子46个
第5天所剩桃子94个
第4天所剩桃子190个
第3天所剩桃子382个
第2天所剩桃子766个
第1天所剩桃子1534个
只是用一行代码 “printf("第%d天所剩桃子%d个\n",n, num);”就全部打印出来。然而当n=10就终止了吧,那能不能怎样修改,使得“第十天所剩桃子1个”能够不依靠“ printf("第10天所剩桃子1个\n");”这一句就打印出来呢?哈哈,我只是比较喜欢研究深一点