四大湖(C程序设计进阶 第2周)

编程题#2:四大湖

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

我国有4大淡水湖。

A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。

B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。

C说:洪泽湖最小,洞庭湖第三。

D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。

已知这4个湖的大小均不相等,4个人每人仅答对一个,

请编程按照鄱阳湖、洞庭湖、太湖、洪泽湖的顺序给出他们的大小排名。

输入

无。

输出

输出为4行,第1行为鄱阳湖的大小名次,从大到小名次分别表示为1、2、3、4;第2、3、4行分别为洞庭湖、太湖、洪泽湖的大小名次。

样例输入


 
 
1
()

样例输出


 
 
1
3( )

这题非常简单,重要的是解题的逻辑。
代码:
//编程题#2:四大湖
//逻辑:列举出所有可能性,并满足条件1:4个湖的大小均不相等;
//条件2:4个人每人仅答对一个
#include <iostream>
using namespace std;
int main()
{
	int a, b, c, d;
	a = b = c = d = 0;
	for (int a = 1; a <= 4; a++) //鄱阳湖可能的排名
	{
		for (int b = 1; b <= 4; b++) //洞庭湖可能的排名
		{
			for (int c = 1;c <= 4; c++) //太湖可能的排名
			{
				for (int d= 1; d <= 4; d++) //洪泽湖可能的排名
				{
					//条件1:4个湖的大小均不相等
					if ((a!=b && a!=c && a!=d && b!=c && b!=d && c!=d)
					//条件2:4个人每人仅答对一个
					&& ((b==1)+(d==4)+(a==3)==1 )
					&& ((d==1)+(b==4)+(a==2)+(c==3)==1)
					&& ((d==4)+(b==3)==1)
					&& ((a==1)+(c==4)+(d==2)+(b==3)==1)
						)
					{
						cout << a << endl << b << endl << c << endl << d << endl;
					}
				}
			}
		}
	}
	return 0;
}




  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值