关于函数的两个问题,在括号里。

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

慕娘7048410

2016-12-02 11:45

#include <stdio.h>

int getPeachNumber(int n)  //这里要定义n,要不编译器会报错!

{

    int num;    

    if(n==10)

    {

       return 1;      (这里的return1是什么意思?)

    } 

    else

    {

        num = (getPeachNumber(n+1)+1)*2;                    (为什么会自己加到10而不是更多,因为前面n==10吗,为什么是因为那个?)

        printf("第%d天所剩桃子%d个\n", n, num); 

    }

    return num;

}

int main()

{

    int num = getPeachNumber(1);

    printf("猴子第一天摘了:%d个桃子。\n", num);

    return 0;

}


写回答 关注

2回答

  • 慕粉1704140
    2016-12-03 22:52:41


    当n=1时   2*(1+getPeachNumber(1+1))

    当n=2时   2*(1+getPeachNumber(2+1))

    当n=3时   2*(1+getPeachNumber(3+1))

    当n=4时   2*(1+getPeachNumber(4+1))

    当n=5时   2*(1+getPeachNumber(5+1))

    当n=6时   2*(1+getPeachNumber(6+1))

    当n=7时   2*(1+getPeachNumber(7+1)) 
    当n=8时   2*(1+getPeachNumber(8+1))   

    当n=9时   2*(1+getPeachNumber(9+1))

    当getPeachNumber(9+1)=getPeachNumber(10)
    因为  n=10

    return 1;

    所以   getPeachNumber(10)=1

    为什么会加1 

    因为(n+1)看成一个整体

    所以
    当n=9时   2*(1+getPeachNumber(9+1))=4

    依次往上推就可得到第一天的;这就是递推的本意


    夜半饮酒

    为什么要2乘与后面的那些呢,括号里面为什么要1加 getpeachnumber ?????求解

    2016-12-27 03:07:54

    共 1 条回复 >

  • qq_刨哊丶_0
    2016-12-02 14:11:43

    return 1;  表示返回1.  我的理解为:前面n==10 定义啦第十天只有一个桃子,一次往前推n=9、n=8、、、而不是从n=1开始慢慢到n=10.

C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题