为什么啊,明明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;