邏輯表達式的實際應用
題目來源:《C/C++程序設計》一書
題目描述
A,B,C,D中一人是小偷,每個人不說真話便說的是假話
A:B沒有偷,是D偷的
B : 我沒有偷,是C偷的
C : A沒有偷,是B偷的
D : 我沒有偷
分析
a b c d 四個變量分別代表A,B,C ,D的狀態,取值爲1 時表示偷,0 表示未偷。循環狀態。B沒有偷,是D偷的可以表示爲!B&&D,當爲假命題時,可以表示爲B&&!D,綜合起來表示爲B+D==1;同理,其他的可以描述爲:B+C==1;A+B==1;a+b+c+d==1
代碼實現
#include<iostream>
using namespace std;
int main()
{
int a, b, c, d;
for (a = 0; a<2; a++)
for (b = 0; b<2; b++)
for (c = 0; c<2; c++)
for (d = 0; d<2; d++)
{
if ((b+d==1)&&(b+c==1)&&(a+b==1)&&(a+b+c+d==1))
{
if (a)
cout << "A偷的" << endl;
if (b)
cout << "B偷的" << endl;
if (c)
cout << "C偷的" << endl;
if (d)
cout << "D偷的" << endl;
}
}
system("pause");
return 0;
}
運行結果
B偷的
請按任意鍵繼續…