递归计算年龄

故事扮演 提交于 2019-12-15 19:29:14

递归计算年龄

有五个人围坐在一起,问第五个人多大了,他说标的四个人大2岁;问四个人多大了,他说比第三个人大2岁,依次类推,前一个人始终比后一个人小2岁,已知第一个人10岁,求第n个人的年龄。

要求:利用递归
输入:第几个人 n
输出:此人年龄

分析:按照写递归的思路,先找简单逻辑关系,再设定一个递归出口。

  1. 第一个人10岁。(出口)
  2. 第二个人起比第一个人大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;
 }


运行结果如下:
在这里插入图片描述

总结:这道题作为一道递归基础题目可按照写递归程序的基本方法解出
设定递归出口
再找出重复的逻辑关系式

递归还有很多类型的题目,想熟练运用递归还需要练习。奥利给!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!