pascal 逻辑

来源:百度知道 编辑:UC知道 时间:2024/05/19 11:30:38
甲:洞庭湖1最大,洪泽湖2最小,鄱阳湖3第三
乙:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖4第三;
丙:洪泽湖最小,洞庭湖第三;
丁:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三;
对于各个湖泊应处的地位,每个人只说对了一个,根据以上情况,编一个程序,让计算机判断各个湖泊应处在第几位。

var dong,hong,bo,tai:integer;
begin
for dong:=1 to 4 do
for hong:=1 to 4 do
if hong<>dong then
for b=1 to 4 do
if (hong<>bo) and (bo<>dong) then
begin
tai:=10-dong-hong-bo;
if (ord(dong=1)+ord(hong=4)+ord(bo=3)=1) and (ord(hong=1)+ord(dong=4)+ord(bo=2)+ord(tai=3)=1) and (ord(dong=3)+ord(hong=4)=1) and (ord(bo=1)+ord(tai=4)+ord(hong=2)+ord(dong=3)=1)
then writeln(\'dong:\',dong,\'hong:\',hong,\'b\',bo,\'tai:\',tai);
end;
readln
end.

用穷举法

把4个湖排列一下,然后跟据排列的结果去对甲乙丙丁说的话,看看对几个。

所谓排列就是
for i1:=1 to 4 do
...for i2:=1 to 4 do
.....for i3:=1 to 4 do
.......for i4:=1 to 4 do
...........再判断

不需要编程序的。。直接在纸上推算出来,然后输入BEGIN
答案
END。

我不知