日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手
python程序如下,有帮助望采纳
a=[0]*4
name='ABCD'
print(a)
for i in range(4):
a[i]=1
if((not a[0])+a[2]+a[3]+(not a[3])==3):
print(name[i]+'是凶手!')
a[i]=0
not a
is C
is D
not D
B C 矛盾,C D矛盾
那就是C 说了谎
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
for x in ["A","B","C","D"]:
a = x!="A" #A说:不是我。
b = x=="C" #B说:是C。
c = x=="D" #C说:是D。
d = not c #D说:C在胡说
if a+b+c+d == 3:
print(x,"是凶手")
假设凶手是e,e的取值范围是1,2,3,4
那么可得:
a:e!=1
b:e=3
c:e=4
d:e!=4
然后设个int count表示有几个人说真话
把四个条件放到4个if里面,如果是true,count++
写个循环,让e分别是1,2,3,4
看count什么时候等于3,就是答案