关于猴子吃桃的这个递归函数始终不明白

num =(getPeachNumber(n+1)+1)*2           这句到底是什么意思怎么算的  ,想了好久还没想通,能告诉我过程吗大神们。

万礼
浏览 2263回答 4
4回答

hhh112123123

这个题我们是从第十天只剩一个桃子开始算的 所以每回要加一再乘以二才可以算出第一天 ,是这样反着算的。通过递归函数不断的用自身加一乘以二就可以算出倒数9.8.7这些天数剩下的桃子,最后一直到第一天。 

万礼

没人过来看看吗?

万礼

#include <stdio.h>int getPeachNumber(n){    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;}

无独有偶yj

你好,请问递归结束条件那里。return 0与return 1有什么区别啊
打开App,查看更多内容
随时随地看视频慕课网APP