回 帖 发 新 帖 刷新版面

主题:一道pascal的程序

在一次竞赛中,已知甲、乙、丙、丁四人分获前四名。在公布前,他们互相猜测:
 甲说:乙会获得第一名;
 乙说:丁会获得第二名;
 丙说:甲会获得第二名;
 丁说:丙不会获得第三名。
其中,只有获得第一名和第三名的两个人猜对了,编程判断甲、乙、丙、丁各获得第几名。

回复列表 (共1个回复)

沙发

var
  a,b,c,d:byte;
begin
  for a:=1 to 4 do
   for b:=1 to 4 do if b<>a then
   for c:=1 to 4 do if (c<>a) and (c<>b) then begin
    d:=10-a-b-c;
    if (odd(a)=(b=1)) and (odd(b)=(d=2)) and
       (odd(c)=(a=2)) and (odd(d)=(c<>3)) then
         writeln(a,' ',b,' ',c,' ',d);
  end;
  writeln;
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册