将1-9这9个数字分成三组(每个数字只能使用一次)
将1-9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。用FP(freepasca...
将1-9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。
用FP(free pascal) 展开
用FP(free pascal) 展开
1个回答
展开全部
program tianshu;
var bo:array[1..9]of integer;
a,b,c,j:integer;
begin
for a:=123 to 329 do
begin
fillchar(bo,sizeof(bo),0);
j:=0;
b:=a*2;
c:=a*3;
if (a mod 10<>0)and(bo[a mod 10]=0) then
begin
inc(j);
bo[a mod 10]:=1;
end;
if ((a div 10)mod 10<>0)and(bo[(a div 10)mod 10]=0) then
begin
inc(j);
bo[(a div 10)mod 10]:=1;
end;
if (a div 100<>0)and(bo[a div 100]=0) then
begin
inc(j);
bo[a div 100]:=1;
end;
if (b mod 10<>0)and(bo[b mod 10]=0) then
begin
inc(j);
bo[b mod 10]:=1;
end;
if ((b div 10)mod 10<>0)and(bo[(b div 10)mod 10]=0) then
begin
inc(j);
bo[(b div 10)mod 10]:=1;
end;
if (b div 100<>0)and(bo[b div 100]=0) then
begin
inc(j);
bo[b div 100]:=1;
end;
if (c mod 10<>0)and(bo[c mod 10]=0) then
begin
inc(j);
bo[c mod 10]:=1;
end;
if ((c div 10)mod 10<>0)and(bo[(c div 10)mod 10]=0) then
begin
inc(j);
bo[(c div 10)mod 10]:=1;
end;
if (c div 100<>0)and(bo[c div 100]=0) then
begin
inc(j);
bo[c div 100]:=1;
end;
if j=9 then writeln(a,' ',b,' ',c);
end;
end.
var bo:array[1..9]of integer;
a,b,c,j:integer;
begin
for a:=123 to 329 do
begin
fillchar(bo,sizeof(bo),0);
j:=0;
b:=a*2;
c:=a*3;
if (a mod 10<>0)and(bo[a mod 10]=0) then
begin
inc(j);
bo[a mod 10]:=1;
end;
if ((a div 10)mod 10<>0)and(bo[(a div 10)mod 10]=0) then
begin
inc(j);
bo[(a div 10)mod 10]:=1;
end;
if (a div 100<>0)and(bo[a div 100]=0) then
begin
inc(j);
bo[a div 100]:=1;
end;
if (b mod 10<>0)and(bo[b mod 10]=0) then
begin
inc(j);
bo[b mod 10]:=1;
end;
if ((b div 10)mod 10<>0)and(bo[(b div 10)mod 10]=0) then
begin
inc(j);
bo[(b div 10)mod 10]:=1;
end;
if (b div 100<>0)and(bo[b div 100]=0) then
begin
inc(j);
bo[b div 100]:=1;
end;
if (c mod 10<>0)and(bo[c mod 10]=0) then
begin
inc(j);
bo[c mod 10]:=1;
end;
if ((c div 10)mod 10<>0)and(bo[(c div 10)mod 10]=0) then
begin
inc(j);
bo[(c div 10)mod 10]:=1;
end;
if (c div 100<>0)and(bo[c div 100]=0) then
begin
inc(j);
bo[c div 100]:=1;
end;
if j=9 then writeln(a,' ',b,' ',c);
end;
end.
参考资料: http://yuanti.tyvj.cn/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询