克罗米之死天赋选择:一道逻辑推理问题(编程问题)

来源:百度文库 编辑:高校问答 时间:2024/04/25 18:26:55
5家工厂长品在评比中分获1-5等奖,已知E产品不是2,3名,五家代表分别预测:
A:E一定第一,B:我厂一定第2;
C:A一定最次,D:C不是最好的;
E:D一定第一;
结果证明只有产品1,2的代表说对了,各厂分别的名次是多少?
用Pascal语言编程做出答案;
我自己做的时候,只有最后加条件的时候'产品1,2的代表说对了'不知道怎么加.有人说:把他们说的话都加在一起,用布尔判断(ORD)得3;可是有漏洞;如果第三个人说对了也得3,所以有很多结果,而只有最后一个结果上一对的,因该再加一个限制条件,不知怎么加;
我欢迎其他解法和我的这种解法的补充
Program gongchang;
Var
a, b, c, d, e: Integer;
Begin
For a:=1 To 5 DO
For b:= 1 To 5 Do
For c:=1 To 5 Do
For d:=1 To 5 Do
For e:=1 To 5 Do Begin
If([a, b, c, d, e]=[1..5]) And ((e<>2)And(e<>3)) And (a*Ord(e=1)+b*Ord(b=2)+c*Ord(a=5)+d*Ord(c<>1)+e*Ord(d=1)=3)
THen Writeln('a=',a,'b=',b,'c=',c,'d=',d,'e=',e);
End;
Readln
End.
我的程序;
知道的写出程序.谢了

枚举撒。。。。。。并不是很难写的