问题描述:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
问题分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
程序源码:
#include<stdio.h>
int main()
{
int n;
int c;
if(n==1) c=10;
else c=age(n-1)+2;
return(c);
printf("%d",age(5));
}
本文通过一个关于年龄的递归问题,展示了如何使用递归来解决问题。问题中五个人的年龄形成一个链条,每个人比前一个人年长两岁,通过递归函数回溯到第一个人的年龄(10岁),然后逐级返回计算出第五个人的年龄。
949

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



