主题:求分数
xsbccf
[专家分:20] 发布于 2008-07-31 12:33:00
小学数学题:1,2,3...9共9个数,取其中4个作分子,剩下的5个作分母,使这个分数的最简分数为三分之一,求这9个数构成的分数.
回复列表 (共4个回复)
沙发
xiong2031 [专家分:30] 发布于 2008-07-31 22:19:00
program ex080731_1;
var a,b,c,d,e,f,g,h,i:integer;
begin
for a:=1 to 9 do
for b:=1 to 9 do
for c:=1 to 9 do
for d:=1 to 9 do
for e:=1 to 9 do
for f:=1 to 9 do
for g:=1 to 9 do
for h:=1 to 9 do
for i:=1 to 9 do
if(a<>b)and(a<>c)and(a<>d)and(a<>e)and(a<>f)and(a<>g)and(a<>h)and(a<>i)
and(b<>c)and(b<>d)and(b<>e)and(b<>f)and(b<>g)and(b<>h)and(b<>i)
and(c<>d)and(c<>e)and(c<>f)and(c<>g)and(c<>h)and(c<>i)
and(d<>e)and(d<>f)and(d<>g)and(d<>h)and(d<>i)
and(e<>f)and(e<>g)and(e<>h)and(e<>i)
and(f<>g)and(f<>h)and(f<>i)
and(g<>h)and(g<>i)
and(h<>i)
and((1000*a+100*b+10*c+d)*3=(10000*e+1000*f+100*g+10*h+i))
then writeln(a,b,c,d,'/',e,f,g,h,i);
end.
本人刚学编程4天,没学过什么,只能这样了,不知有没有高人有更强的方法。
板凳
xsbccf [专家分:20] 发布于 2008-08-01 05:58:00
与我编的几乎一样.
谁能更精简一下呢?
3 楼
shisutianxia [专家分:630] 发布于 2008-08-03 08:34:00
看着约束条件走
program fenshu;
var i:integer;
p,q:string;
function ok(a,b:string):boolean;
var i:integer;s:set of '1'..'9';
begin
s:=[];
for i:=1 to length(a) do
s:=s+[a[i]];
for i:=1 to length(b) do
s:=s+[b[i]];
if s=['1'..'9'] then ok:=true else ok:=false;
end;
begin
for i:=1000 to 9999 do
begin
str(i,p);
str(i*3,q);
if ok(p,q) then writeln(i,' ',3*i);
end;
end.
4 楼
xsbccf [专家分:20] 发布于 2008-08-04 22:41:00
谁能解释一下这段程序?
function ok(a,b:string):boolean;
var i:integer;s:set of '1'..'9';
begin
s:=[];
for i:=1 to length(a) do
s:=s+[a[i]];
for i:=1 to length(b) do
s:=s+[b[i]];
if s=['1'..'9'] then ok:=true else ok:=false;
end;
我来回复