有5个人围坐在一起,问第5个人多大年纪,他说比第4个人大2岁;问第4个人,他说比第3个人大2岁;问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,请利用递归法编程计算并输出第5个人的年龄。 请按如下函数原型,用递归函数编写程序。 // 函数功能:
时间: 2023-07-15 07:10:30 浏览: 84
计算第n个人的年龄
// 函数参数:n表示第n个人
// 返回值:第n个人的年龄
int getAge(int n);
int getAge(int n){
if(n == 1){
return 10;
}else{
return getAge(n-1) + 2;
}
}
// 调用方式
int age = getAge(5);
printf("第5个人的年龄是:%d岁\n", age);
相关问题
本关任务:编写一个使用递归法计算游戏人员年龄的小程序。 有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,…..,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。给出c语言代码
以下是递归法计算游戏人员年龄的 C 语言程序:
```c
#include <stdio.h>
int age(int n)
{
if (n == 1) {
return 10; // 第 1 个人 10 岁
} else {
return age(n - 1) + 2; // 其他人年龄比前一个大 2 岁
}
}
int main()
{
int n;
printf("请输入要求年龄的人的序号:");
scanf("%d", &n);
printf("第%d个人的年龄为:%d\n", n, age(n));
return 0;
}
```
程序中定义了一个递归函数 `age`,用于计算第 n 个人的年龄。如果 n 等于 1,那么第一个人的年龄为 10 岁,直接返回 10;否则,递归调用 `age(n - 1)` 计算出前一个人的年龄,再加上 2 岁得出当前人的年龄。
在 `main` 函数中,读取需要求年龄的人的序号,调用 `age` 函数输出该人的年龄。
递归求年龄分数 有n个人围坐在一起,问第n个人多大年纪 他说比第n-1个人大2岁;问第n-1 个人,他说比第n-2个人大2岁,…,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己已10岁,问第n个人多大年纪。递归函数原型:unsignedint ComputeAg e(unsigned int n):
unsigned int ComputeAge(unsigned int n) {
if (n == 1) { // base case
return 10;
} else { // recursive case
return ComputeAge(n-1) + 2;
}
}