题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。。这个问题可以使用递归来解决。我们可以从第一个人开始,递归地向前推算每个人的年龄,直到推算出第五个人的年龄为止。以下是用 C 语言实现的示例代码:
#include <stdio.h>
// 递归函数计算第n个人的年龄
int calculateAge(int n) {
if (n == 1) {
return 10; // 第一个人的年龄是已知的
} else {
// 递归计算第n个人的年龄
return calculateAge(n - 1) + 2;
}
}
int main() {
int fifthPersonAge;
// 调用递归函数计算第五个人的年龄
fifthPersonAge = calculateAge(5);
// 输出结果
printf("第五个人的年龄是:%d岁\n", fifthPersonAge);
return 0;
}
在上述代码中,calculateAge
函数使用递归方式计算第n个人的年龄。当n等于1时,表示第一个人的年龄已知为10岁,递归终止。否则,递归调用计算第n-1个人的年龄,并加上2,得到第n个人的年龄。
通过调用 calculateAge(5)
,我们可以计算出第五个人的年龄。程序输出的结果将是第五个人的年龄。文章来源:https://www.toymoban.com/news/detail-824659.html
希望你也学会了,更多编程请来二当家的素材网:https://www.erdangjiade.com文章来源地址https://www.toymoban.com/news/detail-824659.html
到了这里,关于C语言入门到精通之练习28:利用递归的方法,有5个人坐在一起,问第五个人多少岁?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!