free pascal编程题求解答(警察局抓了A 、B、C、D四名偷窃嫌疑犯,其中有一个是小偷。审问A说:“我……)

警察局抓了A 、B、C、D四名偷窃嫌疑犯,其中有一个是小偷。审问A说:“我不是小偷。”B说“C是小偷。”C说:“小偷肯定是D。”D说:“C在冤枉人。”现在已经知道四个人中三人说的是真话,一人说的是假话,问到底谁是小偷?,对了有赏金

是C
如果A说的是真话 那么小偷是B 由此可推出D说的也是真话
如果B说的是真话 那么C说的也是真话
如果C说的是真话 那么B说的是假话 小偷不是D D说的就是真话
如果D说的是真话 那么B说的是假话 就不是D C说的是假话 那么是C偷的 所以A说的也是假话
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-08
var
a,b,c,d:integer;
begin
for a:=0 to 1 do
for b:=0 to 1 do
for c:=0 to 1 do
for d:=0 to 1 do
if (a+b+c+d=1) then
if ord(a<>1)+ord(c=1)+ord(d=1)+ord(d<>1)=3 then
begin
if a=1 then writeln('A is killer.');
if b=1 then writeln('B is killer.');
if c=1 then writeln('C is killer.');
if d=1 then writeln('D is killer.');
end;
readln;
end.本回答被提问者采纳
第2个回答  2012-03-07
C是小偷
第3个回答  2015-05-13
:?❼❻六四⒌⑤≯≌°㏒δフホベベッョ「。ㅍㅌㅋㅗ㈀㈂㈃㈌㉸㈈㈊㈁┈㊚▔▕☾○ΔΠΣΣÐÐÓÔ÷÷þǔǔæa:vhwjɔ:ɔiはたてどばゃゅゐ
第4个回答  2012-03-10
c
相似回答