刑侦大队对涉及六个嫌疑人的一桩疑案的分析,编一程序,将作案人找出来

某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析:(1)A、B至少有一人作案;(2)A、E、F三人中至少有两人参与作案;(3)A、D不可能是同案犯;(4)B、C或同时作案,或与本案无关;(5)C、D中有且仅有一人作案;(6)如果D没有参与作案,则E也不可能参与作案。采用蛮力法设计算法将作案人找出来。

|| 表示先运算符号左边的东西,然后判断是否为true,是true就停下来直接输出不会再运行后面的东西,是false就继续运算右边的然后判断并输出。

&& 表示先运算符号左边的东西,然后判断是否为true,是true就继续运算右边的然后判断并输出,是false就停下来直接输出不会再运行后面的东西。

#include
using namespace std;
int main()
{
	int A, B, C, D, E, F;//定义A到E六个变量,作案等于1,否则等于0
	for (A = 0; A <= 1; A += 1)
		for (B = 0; B <= 1; B += 1)
			for (C = 0; C <= 1; C += 1)
				for (D = 0; D <= 1; D += 1)
					for (E = 0; E <= 1; E += 1)
						for (F = 0; F <= 1; F += 1)
						{
								if (6 ==
									(A || B)				//A、B 至少有一人作案
									+ (!(A && D))				//A、D 不可能是同案犯
									+ ((A && E) || (A && F) || (E && F))	//A、E、F 三人中至少有两人参与作案
									+ ((B && C) || (!B && !C))		//B、C 或同时作案,或与本案无关
									+ ((C && !D) || (D && !C))		//C、D 中有且仅有一人作案
									+ (D || (!E)))//如果 D 没有参与作案,则 E 也不可能参与作案。
							{
								cout << "A " << "B " << "C " << "D " << "E " << "F " << endl;
								cout << A << " " << B << " " << C << " " << D << " " << E << " " << F << " " << endl;
							}
						}
	return 0;
}

你可能感兴趣的:(C++)