为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
万礼 2015-11-12 09:17:19
num =(getPeachNumber(n+1)+1)*2           这句到底是什么意思怎么算的  ,想了好久还没想通,能告诉我过程吗大神们。
查看完整描述

4 回答

已采纳
?
hhh112123123

TA贡献158条经验 获得超98个赞

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

查看完整回答
3 反对 回复 2015-11-12
?
万礼

TA贡献2条经验 获得超4个赞

没人过来看看吗?

查看完整回答
2 反对 回复 2015-11-12
?
万礼

TA贡献2条经验 获得超4个赞

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

}


查看完整回答
2 反对 回复 2015-11-12
?
无独有偶yj

TA贡献2条经验 获得超0个赞

你好,请问递归结束条件那里。return 0与return 1有什么区别啊

查看完整回答
反对 回复 2015-12-06
  • 万礼
    万礼
    0表示成功完成任务,其他数值表示失败,应该是这样
  • 4 回答
  • 1 关注
  • 2262 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信