第12行打印出来的n的值不应该是从1开始的吗?因为实参一开始给形参赋的值就是1 呀

img

img


#include<stdio.h>
int getPeachNumber(int n)
{
int num = 1; //定义所剩桃子数
if (n == 10)
{
return num; //递归结束条件
}
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;
}
以上是原码,求大神解疑。

递归函数是堆栈原理,后进先出,即从最后一个(第9天)开始打印。

11和12交换一下看看