非梦 纯属意外:关于Pascal集合的题目

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 20:05:30
将1,2...9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数.例如:三个三位数192,384,576满足以上条件.

program abcdefg;
var
i,j,k,s,s2,s3,d1,d2,d3,l1,l2,l3:integer;
a:set of byte;
begin
a:=[1,2,3,4,5,6,7,8,9];
for i:=1 to 3 do
begin
a:=a-[i];
for j:=1 to 9 do
begin
if not(j in a) then
continue;
a:=a-[j];
for k:=1 to 9 do
begin
if not (k in a) then
continue;
a:=a-[k];
s:=i*100+j*10+k;
s2:=s*2;
s3:=s*3;
d1:=s2 div 100;
d2:=(s2 mod 100) div 10;
d3:=s2 mod 10;
if (d1<>d2) and (d2<>d3) and (d1<>d3) and (d1 in a) and (d2 in a) and (d3 in a) then
begin
a:=a-[d1,d2,d3];
l1:=s3 div 100;
l2:=(s3 mod 100) div 10;
l3:=s3 mod 10;
if (l1<>l2) and (l2<>l3) and (l1<>l3) and (l1 in a) and (l2 in a) and (l3 in a) then
begin
writeln(s);
writeln(s2);
writeln(s3);
writeln;
end;
a:=a+[d1,d2,d3]
end;
a:=a+[k];
end;
a:=a+[j];
end;
a:=a+[i];
end;
end.

运行结果:

192
384
576

219
438
657

273
546
819

327
654
981