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

递归函数(二) 希望解惑

#include <stdio.h>

int getPeachNumber(int n)  //这里要定义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;

根据 (getPeachNumber(n+1)+1)*2;    n=1

那第九天不是应该(1+1)+1)*2=6

有6个桃子吗,这4是怎么来的   纠结啊

正在回答

3 回答

n+1不是n+1个桃子,而是代表第十天,getpeachnumber(n)为第九天时,n+1就是第十天所吃桃子的函数,不是单纯n+1

0 回复 有任何疑惑可以回复我~

if(n==10)

    {

       return 1;      

    } 

假设n=9

num = (getPeachNumber(n+1)+1)*2;    getPeachNumber(n+1)=getPeachNumber(9+1)=getPeachNumber(10)=1

所以第九天(getPeachNumber(n+1)+1)*2=(1+1)*2=4


1 回复 有任何疑惑可以回复我~
#1

慕仰103958 提问者

可是主函数设置参数为1,因该从1算起啊
2018-11-28 回复 有任何疑惑可以回复我~

第一天早上有1534个中午吃一半有767晚上吃一个有766个

到第二天早上有766个中午吃一半有383晚上吃一个有382个

以此类推到第九天早上有4个中午吃一半有2晚上吃一个有1个

到第十天就剩下一个了

0 回复 有任何疑惑可以回复我~
#1

慕仰103958 提问者

额。。。。我主要是看不懂这个公式,按照公式来算,应该是6啊
2018-11-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924473    人
  • 解答问题       20757    个

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

进入课程

递归函数(二) 希望解惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信