题目描述
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第一个人大2岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析
利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人的岁数,需知道第四个人的岁数,依次类推,推到第一人(10岁),再往回推。
源代码
#include<stdio.h>
#include<stdlib.h>
int age(int n)
{
if (n == 1)
{
return 10;
}
else
{
return age(n - 1) + 2;
}
}
int main()
{
int ret = age(5);
printf("%d\n", ret);
system("pause");
return 0;
}
本文通过一个年龄谜题,介绍了递归算法的基本概念及其应用。五个朋友的年龄关系构成了一种递归结构,从第一个人的年龄出发,逐步递增求解出第五个人的年龄。文章详细解释了递归的回推和递推过程,并提供了C语言实现的源代码。

826

被折叠的 条评论
为什么被折叠?



