递归函数(二) 希望解惑

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

慕仰103958

2018-11-22 01:20

#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回答

  • qq_XT_15
    2018-12-20 14:23:18

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

  • 慕函数5353813
    2018-11-24 10:39:05

    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


    慕仰1039...

    可是主函数设置参数为1,因该从1算起啊

    2018-11-28 14:42:15

    共 1 条回复 >

  • 慕码人9509864
    2018-11-22 15:08:55

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

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

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

    到第十天就剩下一个了

    慕仰1039...

    额。。。。我主要是看不懂这个公式,按照公式来算,应该是6啊

    2018-11-22 15:14:52

    共 1 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题