/ Vijos / 讨论 / 分享 /

1998 信息第一题

例3.数字分组(NOIP1998初中组复赛第一题)

将1,2,...,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

例如: 192、384、576这三个三位数是满足以上条件的。

输入:一个数字n(和题目无关,为了测评有输入文件)

输出:一行三个数,用空格隔开。有几组解输出几行

2 条评论

  • @ 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