C语言经典算法100例-028-五个人问岁数

题目很简单,直接看原文:

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

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

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=5;
    int age(int);   //函数原型
    printf("The age of 5th is %d\n",age(i));
}
int age(int n)
{
    if(n==1)
        return 10;
    else
        return(age(n-1)+2);
}


posted @ 2014-03-05 13:57  庄浩  阅读(443)  评论(0编辑  收藏  举报