C语言。。大牛请解答我疑惑,再次谢过了!

图片说明
为什么啊,明明n没有变化,怎么算出来就变了,搞不懂。

        递归就是自己调用自己啊
        每次递归
        新的 n 是上一次的n+1
        n=10 直接退出
        n 不等于10 输出 剩余桃子数


        输出顺序,和递归调用顺序是相反的,因为先执行递归,然后执行输出
        n=10 //第10次递归
        返回 1,不输出
        n=9 //第二次递归
        输出 返回num
        。。
        n=2 //第二次递归
        输出 返回num
        n=1 //第一次递归
        输出 
  返回 计算结果

        最后在main 函数中输出答案

I don't know what you want to say...and there is a bug in your program
int getPeachNumber(n){} int getPeachNumber(int n){}

n没有变化,但是传入GetPeachNumber函数中的参数变了,变成n+1,也就是说每调用一次GetPeachNumber,传入的参数就会加1,知道传入的参数等于10才会返回。

you can set if(n == 2){return 1;} int your program, then analyze it step one by one.
step 1: n == 1 num = (getPeachNumber(1+1)+1)*2;

in step 1, your num = (getPeachNumber(2)+1)*2;
so you must calculate getPeachNumber(2)'s value;
step 2: n == 2 num =1; so getPachNumber(2) = 1, and in your step 1, num = (1+1)*2 = 4;

so if you set if(n == 2){return 1;} then your program would get num = 4;