将1-9这9个数字分成三组(每个数字只能使用一次)

将1-9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。用FP(freepasca... 将1-9这9个数字分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。
用FP(free pascal)
展开
百度网友4a21cf3
2011-01-13 · TA获得超过4080个赞
知道小有建树答主
回答量:653
采纳率:0%
帮助的人:949万
展开全部
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.

参考资料: http://yuanti.tyvj.cn/

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式