日用黑釉瓷器:把数字1,2,3,4,…,9分成3组,每组构成一个3位数,使这3个3位数恰好成1:2:3,该怎样分?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/11 02:20:24
把数字1,2,3,4,…,9分成3组,每组构成一个3位数,使这3个3位数恰好成1:2:3,该怎样分?求出所有的解答来。(如:192,384,576就是一组解答)。补充一点,这题目要用最基础的解,我才学了分支结构,循环才学了FOR,题目的要求好象是要用FOR来解,下面是我编的,但是结果出不来,高手们看看吧,谢谢指教。
program ex;
var flag,i,j,first,second,third:integer;
a:array[0..8] of integer;
begin
for first:=123 to 329 do
begin
flag:=1;
second:=first*2;
third:=first*3;
a[0]:=first div 100;
a[1]:=first mod 100 div 10;
a[2]:=first mod 100;
a[3]:=second div 100;
a[4]:=second mod 100 div 10;
a[5]:=second mod 100;
a[6]:=third div 100;
a[7]:=third mod 100 div 10;
a[8]:=third mod 100;
for i:=0 to 7 do
for j:=1 to 8 do
if a[i]=a[j] then
flag:=0;
if flag=1 then
writeln(first,' ',second,' ',third)
end
end.
我的程序到底错在哪里。

s=0;
int interger[3];
times=0
while(times<9)
{
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)
{
if(i!=j&&i!=k&&j!=k) integer[s++]=100*i+10*j+k;
}
if(integer[0]*2==integer[1]&&integer[0]*3==integer[2]&&integer[1]*3==integer[2]*2)
{ for(m=0;m<3;m++) printf("%d ",integer[m]);}
times++;
}