递归计算年龄
有五个人围坐在一起,问第五个人多大了,他说标的四个人大2岁;问四个人多大了,他说比第三个人大2岁,依次类推,前一个人始终比后一个人小2岁,已知第一个人10岁,求第n个人的年龄。
要求:利用递归
输入:第几个人 n
输出:此人年龄
分析:按照写递归的思路,先找简单逻辑关系,再设定一个递归出口。
- 第一个人10岁。(出口)
- 第二个人起比第一个人大2岁,以此类推。(关系式)
#include <stdio.h>
int s(int n)
{
int age;
if(n==1)
age=10; //出口
else if(n!=1){
age=s(n-1)+2;//第二个人比前一个人大两岁
}
return age;
}
int main(){
int m;
scanf("%d",&m);
printf("%d",s(m));
return 0;
}
运行结果如下:
总结:这道题作为一道递归基础题目可按照写递归程序的基本方法解出
设定递归出口
再找出重复的逻辑关系式
递归还有很多类型的题目,想熟练运用递归还需要练习。奥利给!
来源:CSDN
作者:w2000ds
链接:https://blog.csdn.net/w2000ds/article/details/103516885