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;
}
其中return 1;我编的是num=1可以吗?
不能。我建议你可以一步一步推一下,假设n等于10的时候,num等于1。那程序就结束了,就不会再往回走。递归是先推到n==10然后在回头算,你还需要用return 把东西在传回去。
等等我又看乱了。咳,上面说错了,我以为else里面有return。照你那么说是对的。一般就是一个是约束条件。