当前位置:   article > 正文

某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件: 1)A和B两人中至少去一人; 2)A和D不能一起去; 3)A、E和F三人中要派两人去; 4)B和_(1)a,b两人中至少去1人;命题符号化

(1)a,b两人中至少去1人;命题符号化

某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
1)A和B两人中至少去一人;
2)A和D不能一起去;
3)A、E和F三人中要派两人去;
4)B和C都去或都不去;
5)C和D两人中去一个;
6)若D不去,则E也不去。
问应当让哪几个人去?

*问题分析与算法设计
用A、B、C、D、E、F六个变量表示六个人是否去执行任务的状态,变量的值为1,则表示该人去;变量的值为0,则表示该人不参加执行任务,根据题意可写出表达式
a+b>1 A和B两人中至少去一人;
a+d!=2 A和D不能一起去;
a+e+f2 A、E、F三人中要派两人去;
b+c
0或b+c2 B和C都去或都不去;
c+d
1 C和D两人中去一个;
d+e0或d1 若D不去,则E也不去(都不去;或D去E随便)。
上述各表达式之间的关系为“与”关系。穷举每个人去或不去的各种可能情况,代入上述表达式中进行推理运算,使上述表达式均为“真”的情况就是正确的结果。

#include<iostream>
using namespace std;
int main()
{
	int a, b, c, d, e, f;
	for (a=0; a < 2; a++)
	{
		for (b=0; b < 2; b++)
		{
			for (c=0; c < 2; c++)
			{
				for (d=0; d < 2; d++)
				{
					for (e=0; e < 2; e++)
					{
						for (f=0; f < 2; f++)
						{
							if ((a + b >= 1) && (a + d == 1) && (a + e + f == 2) && (c + d == 1) && (b + c != 1) && (d + e == 0 || d == 1))
							{
								if (a == 1)
								{
									cout << "a" << endl;
								}
								if (b == 1)
								{
									cout << "b" << endl;
								}
								if (c == 1)
								{
									cout << "c" << endl;
								}
								if (d == 1)
								{
									cout << "d" << endl;
								}
								if (e == 1)
								{
									cout << "e" << endl;
								}
								if (f == 1)
								{
									cout << "f" << endl;
								}
							}
						}
					}
				}
			}
		}
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

下面是运行结果:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/200587
推荐阅读
相关标签
  

闽ICP备14008679号