题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人的岁数,需知道第四个人的岁数,依次类推,一直回推到第一个人(10岁),再递推回来。

实例

#include <stdio.h>

int age(int n);

int main() {
    printf("%d\n", age(5));
    
    return 0;
}

int age(int n) {
    int c;
    
    if (n == 1)
        c = 10;
    else
        c = age(n - 1) + 2;
    
    return c;
}

以上实例输出结果为:

18

该程序使用递归方法计算第五个人的年龄。函数 age() 接受一个整数参数 n,代表第几个人的年龄。如果 n 为1,则年龄为10岁。否则,通过递归调用 age(n-1) 来计算前一个人的年龄,并将其加上2,得到当前人的年龄。递归调用在回推阶段完成,直到推到第一个人为止。最后,返回第五个人的年龄。在主函数中,我们调用 age(5) 来获取第五个人的年龄,并将其打印出来。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题