问答详情
源自:5-8 递归函数(二)

不知道程序错哪里了

#include <stdio.h>

int getPeachNumber(n)

    int num;    //定义所剩桃子数

    if(n==10)

    {

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

}


提问者:慕设计4025122 2020-04-18 16:03

个回答

  • 艒先生
    2020-04-19 13:30:13
    已采纳

    调用函数getPeachNumber时形参位置应该加上类型。在递归计算挑子数时遵循的是:今天原有挑子数/2-1=今天剩下挑子数。递归递归,原理便是基于前或后一数据。程序中要求的挑子数为原有的,公式应该是:(剩下+1)*2=原数

  • 慕桂英5023831
    2020-07-05 13:42:24

        retutn 1;      //递归结束条件, 这里的return写错了!