题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数, 他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大 两岁。最后问第一个人,他说是 10 岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道 第四人的岁数,依次类推,推到第一人( 10 岁),再往回推。
#include <stdio.h>
int fun(int n){
if(n==1) return 10;
else return fun(n-1)+2;
}
int main(){
printf("%d",fun(5));
return 0;
}
这篇博客通过一个有趣的数学问题展示了如何使用递归编程来解决实际问题。第五个人的年龄是通过询问每个人的年龄,相对于前一个人依次大两岁,最终得知第一个人的年龄为10岁,然后回溯计算出第五个人的年龄为16岁。程序通过递归函数实现,从第一个人开始,每次加2直到找到第五个人的年龄。
3万+

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



