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

不知道错误在哪

#include <stdio.h> 

/* 

 * 请使用递归函数完成本题

 * 小编已将正确代码放在左侧任务的“不知道怎么办”里

 * 小编希望各位童鞋独立完成哦~

 */

int getAge(int num){

    int age;

    if(num==1){

        return 10;

    }

    else{

        age = getAge(num)*2+8;

    }

    return age;

}









int main() 

{

    int age = getAge(5);

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

return 0;

}


提问者:猿_小白 2019-01-19 22:43

个回答

  • qq_慕圣9533115
    2019-01-20 16:47:30

    递归函数是调用它本身来进行运算,故我们要根据问题本身来考虑函数的出口和每一次递归的的联系,如第五人说比第四人大两岁,第四人比第三人大两岁······第一人说他有10岁,可以看出他们之间相互大两岁,则其数列表达式可为a(n)=a(n-1)+2。所以你可将age=getAge(num)*2+8改为age=gerAge(n-1)+2。即可

    希望对你有帮助!