输出结果为什么不是从第一天到第九天,而是从第九天到第一天呢?希望看得懂的人可以为我详细的讲解下,感激不尽!!!

来源:5-8 递归函数(二)

imooc_粉丝

2016-09-14 20:44

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;
}


写回答 关注

1回答

  • JustWannaHugU
    2016-09-14 21:35:15

    因为递归是从第十天剩余1个桃子开始的,第九天的桃子数量是第十天的桃子+1再乘以2,依次递归直到第一天

    imooc_... 回复JustWa...

    这个回答还差不多

    2016-09-15 09:57:45

    共 4 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题