题目:
有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大2岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析(直接循环):
第1个人是十岁,每个人以每次加2的顺序依次递增,共加了四次,口算就可以得到第五个人今年18岁。
代码实现:
#include <stdio.h>
int main()
{
int i=1,sum=10;//i代表人数,sum表示年龄
for(i=1;i<5;i++)
{
sum+=2;
}
printf("第五个的年龄是%d岁",sum);
return 0;
}
代码效果:
程序分析(递归函数):
想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
代码实现:
#include <stdio.h>
int age(n)//递归函数
int n;
{
int c=0;
if(n==1)
c=10;
else
c=age(n-1)+2;
return c;
}
int main()
{
printf("第五个人的年龄是%d岁",age(5));
return 0;
}