- 分享
- 2009-05-14 16:27:25 @
例3.数字分组(NOIP1998初中组复赛第一题)
将1,2,...,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
例如: 192、384、576这三个三位数是满足以上条件的。
输入:一个数字n(和题目无关,为了测评有输入文件)
输出:一行三个数,用空格隔开。有几组解输出几行
2 条评论
-
WangZiYu LV 8 @ 2009-05-14 16:27:25
sr
program num;
var
i,j,k:integer;
a:array [1..3,1..3] of integer;
procedure t(i,n:integer);
begin
a:=n div 100;
a:=n div 10 mod 10;
a:=n mod 10;
end;function sm:boolean;
var i,j,s:longint;
begin
s:=1;
for i:=1 to 3 do for j:=1 to 3 do
s:=s*a;
if s=1*2*3*4*5*6*7*8*9 then exit(true) else exit(false);
end;begin
for i:=123 to 333 do
begin
j:=i*2;
k:=i*3;
t(1,i); t(2,j); t(3,k);
if sm then writeln(i,' ',j,' ',k);
end;
end. -
2009-05-14 16:22:07@
给你源码
var i:integer;
s,st,s1:string;
c:char;
b:boolean;begin
for i:=123 to 329 do
begin
b:=false;
str(i,st);
str(i*2,s);
str(i*3,s1);
st:=st+s+s1;
for c:='1' to '9' do if pos(c,st)=0 then b:=true;
if not b then writeln(i,' ',i*2,' ',i*3);
end;
end.
建议先测试。
- 1