C语言编程:递归求年龄

有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大两岁。问第2个人,说比第1个人大两岁。最后 问第1个人,他说是10岁。请问第5个人多大?

程序分析:

利用递归的方法,递归分为回推和递推两个阶段。要想知道第5个人岁数,需知道第4人的岁数,依次类推,推到第1人(10岁),再往回推。

#include <stdio.h> 

int ageCalculation(int n){
    int age;
    
    if(n == 1){
        return 10; //age = 10;  
        //错误原因:这个是终止条件,必须要跳出这个函数
    }
    age = ageCalculation(n-1) + 2;
    
    return age;
}

int main() 
{
    int age = 0;

    age = ageCalculation(5);
	printf("第5个人的年龄是%d岁", age); 
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42072280/article/details/84429635