
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
第四人的岁数,依次类推,推到第一人(10岁),再往回推。
#include <iostream>
// 递归函数,用于计算第n个人的年龄
int getAge(int n) {
if (n == 1) {
return 10; // 基本情况:第一个人的年龄是10岁
}
return getAge(n - 1) + 2; // 递归调用,计算第n个人的年龄
}
int main() {
int person = 5;
int age = getAge(person);
// 输出结果
std::cout << "第五个人的年龄是: " << age << "岁" << std::endl;
return 0;
}getAge 函数用于计算第 n 个人的年龄。n 为1,返回10(基本情况)。getAge(n - 1) + 2,即将问题分解为更小的子问题。person 为5,表示要计算第五个人的年龄。getAge 函数计算第五个人的年龄,并将结果存储在 age 中。运行这段代码将输出第五个人的年龄。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。