主题:这道题应如何优化?
XVenus
[专家分:20] 发布于 2005-06-14 19:12:00
TEN
TEN
+ FORTY
-------
SIXTY
求出每个字母所代表的数字,每个字母代表的数字各不相同。
这道题应如何优化呢?
回复列表 (共3个回复)
沙发
rickone [专家分:15390] 发布于 2005-06-14 20:10:00
不用搜索,直接解方程如何?
板凳
XVenus [专家分:20] 发布于 2005-06-15 18:45:00
Program ex;
Const
n = 0;
e = 5;
Type
set1 = set of 0..10;
Var
a1, a2, a3, a4, a5, f, o, r, t, y, s, i, x : Integer;
b: Set1;
Begin
assign(output,'e:\plus.out');
Rewrite(output);
For f:=0 To 9 Do
For o:=0 To 9 Do
For r:=0 To 9 Do
For t:=0 To 9 Do
For y:=0 To 9 Do
If [f,o,r,t,y,n,e]=[0..9]
Then Begin
b := [0..9]-[f,o,r,t,y,n,e];
a1 := t*200+e*20+2*n+f*10000+o*1000+r*100+t*10+y;
s := a1 div 10000;
i := a1 div 1000;
x := a1 div 100;
If b-[s,i,x]=[]
Then Begin
write(t,e,n);
Writeln;
Write(f,o,r,t,y);
Writeln;
Write(s,i,x,t,y);
Writeln;
End;
End;
Close(output);
End.
程序已经优化到这个地步了,不过恐怕条件写错了,做不出结果了
3 楼
rickone [专家分:15390] 发布于 2005-08-06 01:20:00
观察:
T50
T50
+ F9RTY
-------
S1XTY
易得
N=0
E=5
O=9
I=1
剩下的有关系 2T+R+1=20+X S=F+1
剩下的数字有 2 3 4 6 7 8
容易得到T>5
如果T=6,R不存在
如果T=7,R>5,若R=6,X=1矛盾,若R=8,X=3可行(1)
如果T=8,R>3,若R=4,X=1矛盾,若R=6,X=3可行(2),若R=7,X=4可行(3)
(1)剩下2 4 6,不满足S=F+1
(2)剩下2 4 7,不满足S=F+1
(3)剩下2 3 6,则S=3,F=2,剩下最后一个Y=6
综合只有一个解:
N=0 I=1 F=2 S=3 X=4 E=5 Y=6 R=7 T=8 O=9
写成竖式:
850
850
+ 29786
-------
31486
我来回复