我不太明白题中的n的值的变化
根据题中函数的执行,我可以理解num的值的变化,但是函数内的输出,例如第一条,n是9,num是4;num值我理解,但是n的值为什么是9我不太清楚
根据题中函数的执行,我可以理解num的值的变化,但是函数内的输出,例如第一条,n是9,num是4;num值我理解,但是n的值为什么是9我不太清楚
2018-12-07
我貌似理解题主的意思了,为什么是打印从9开始而不是1,那是因为“printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数”这条语句在最开始传入 1 的时候并没有执行,那这条语句是什么时候开始第一次执行呢,就是一直执行这个“(getPeachNumber(n + 1) + 1)*2”递归,直到n曾加到10了,然后开始return 1,return 1;之后,此时函数跳回到上一层,这个时候n等于9,然后因为递归已经执行过了,开始往外一层一层退了,才开始第一次执行“printf("第%d天所剩桃子%d个\n", n, num);”,而此时正好是n等于9,然后就是8等等,主要是你要是理解了递归的过程就好了。
举报