问答详情
源自:5-9 递归函数练习

人数为什么要写-1,算出来怎么是+的

#include <stdio.h> 

int num(int renshu)

{

    int suishu;

    if(renshu==0)

    {

    return 8;

}

    else

    {

    suishu= num(renshu-1)+2;

    printf("第%d个人%d岁\n",renshu,suishu);

}

    return suishu;

}

int main() 

{

    printf("第5个人的年龄是%d岁",num(5)); 

return 0;

}

我是照着之前代码写的,我的编译器可以运行但是浏览器的不能运行,我只有一个地方弄不明白就是人数不应该+1吗为什么要写-1?

提问者:qq_慕函数9094777 2020-12-22 00:44

个回答

  • Bad__Boy
    2021-01-05 14:34:38

    我们已知的是第一个人的岁数,功能函数里传入的参数是我们想要知道第几个人的岁数,所以人数要依次递减1,直到减到我们已知的第一个人,由于年龄是越往前越小,所以人数每减去1个,年龄就要+2才能得到我们传入的那个参数的值(也就是中间有多少个人,就大了多少个2岁)