问题是这样的:四个人里有一个隐形股东,对A、B、C、D询问,表述如下:
A:“隐形股东在B、C、D三人之中。”
B:“我不是隐形股东,C是。”
C: “在A和D中间有一个是。"
D: “B说的是事实”
四人中两人说了真话,隐形股东只有一个。
statements = [
"隐形股东在B、C、D三人之中。",
"我不是隐形股东,C是。",
"在A和D中间有一个是。",
"B说的是事实"
]
for i in range(4):
for j in range(4):
if i == j:
continue
true_count = 0
for k in range(4):
if (k == i) or (k == j and k != 1) or (k == 1 and i != 1 and j != 1) or ("隐形股东" in statements[k] and k != j):
true_count += 1
if true_count == 2:
print("隐形股东是股东" + chr(ord('A')+i))
break
根据逻辑推理,将四个人分别是隐形股东的情况代入,可以发展d是隐形股东,代码运行出来bcd都是,请问是哪里错了?