用0.1.2.3.4.5.6.7.8.9数字使以下算式成立

问题描述:

用0.1.2.3.4.5.6.7.8.9数字使以下算式成立
要把上面的数字都用上,还不能重复
1个回答 分类:数学 2014-11-25

问题解答:

我来补答
首先,两个加数为3位数,而结果为四位数,所以必须进位,所以结果的最高位必定为1.
还有两个加数的末位均不可为0,否则必然有重复;首位也不可为0.所以0只有剩下的5个位置.
我可以确定的就那么多,剩下的用数学方法就是“试”了.
这么繁琐的事情我交给电脑做了.以下是我的pascal代码:
var i,j:integer;
procedure pd(a,b,c:integer);
var f:array [0..9] of boolean;
k:integer;
begin
for k:=0 to 9 do f[k]:=false;
f[1]:=true;
for k:=1 to 3 do begin
if f[a mod 10] then exit else begin f[a mod 10]:=true; a:=a div 10; end;
if f[b mod 10] then exit else begin f[b mod 10]:=true; b:=b div 10; end;
if f[c mod 10] then exit else begin f[c mod 10]:=true; c:=c div 10; end;
end;
writeln(i,' ',j,' ',i+j);
end;
begin
assign(output,'d:baidu.txt');
rewrite(output);
for i:=123 to 987 do for j:=123 to 987 do if (i=1023) then begin
pd(i,j,i+j);
end;
close(output);
end.
---------------------
看不懂没关系,我把结果告诉你:
246 789 1035
249 786 1035
264 789 1053
269 784 1053
284 769 1053
286 749 1035
289 746 1035
289 764 1053
324 765 1089
325 764 1089
342 756 1098
346 752 1098
347 859 1206
349 857 1206
352 746 1098
356 742 1098
357 849 1206
359 847 1206
364 725 1089
365 724 1089
423 675 1098
425 673 1098
426 879 1305
429 876 1305
432 657 1089
437 589 1026
437 652 1089
439 587 1026
452 637 1089
457 632 1089
473 589 1062
473 625 1098
475 623 1098
476 829 1305
479 583 1062
479 826 1305
483 579 1062
487 539 1026
489 537 1026
489 573 1062
624 879 1503
629 874 1503
当中有一部分和相等的情况,从数据不难看出:加数的某些对应位置可以直接交换(但那就是不同的数了,所以没删掉).我在做时已经保证了第一个加数小于第二个加数了.
 
 
展开全文阅读
剩余:2000
上一页:弧度制96页