C语言经典题目:有5个人坐在一起,问他们分别多少岁?

C语言经典题目:有5个人坐在一起,问他们分别多少岁?,第1张

题目:
有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3人多少岁,他说比第2个人大2岁。问第2个人多少岁,他说比第1个人大2岁。最后问第1个人,他说他是10岁。编写程序,当输入第几个人时求出其对应的年龄。

思路:
根据题目描述,可知,他们的年龄这么巧,都是依次多2岁(实际生活中能遇到这么巧的事实在不多)。
本题用的知识点就是递归。
递归作为c语言重要的一部分,想必大家都学过(没学过的东西没关系,可以翻翻教材后面即可),所以我这里只用一个c语言代码举例。

// 值在减小、规模也在减小
int f(int n)
{
	if(n<3)
		printf("结束\n")// 递归结束
	else
		n = f(n-1);  // 在此递归
return n;
}

// 值在增大、规模却在减小
int f(int n)
{
	if(n>7)
		printf("结束\n")// 递归结束
	else
		n = f(n+1);  // 在此递归
return n;
}

答案:
好啦,既然明白本题知识点,那么做起来肯定容易多了,我们开始吧

#include 
int age(int n)
{
	int x;    //年龄
	if (n == 1)    //我们把他们几个人从小到大排序
	{
		x = 10;   //第一个人的年龄
	}
	else
		x = age(n - 1) + 2;
	return x;

}
int main()
{
	int n;
	printf("请输入其中一个人的年龄:");
	scanf("%d", &n);
	printf("第%d个人的年龄为%d\n", n,age(n));
	return 0;
}

好啦,我们输出看下
好啦,正确
真诚的希望我的回答可以帮到遇到这个问题的同学。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/755963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-30
下一篇 2022-04-30

发表评论

登录后才能评论

评论列表(0条)

保存