小学奥数读本(三年级),P133第12题

小学奥数读本(三年级),P133第12题。

用一到八,八个数,组成一道除法算式:口口÷=

这题有两个答案:

453*6=2718

582*3=1746

用pascal编程解决,解法一:

 1 var 
 2   i,j:longint;
 3   s:set of char;
 4   st:string;
 5 begin
 6   for i:=123 to 987 do
 7     for j:=1 to 8 do begin
 8       s:=[];
 9       str(i,st);
10       s += [st[1]]+[st[2]]+[st[3]];
11       str(j,st);
12       s += [st[1]];
13       if(i*j>=1234) then begin
14         str(i*j,st);
15         s += [st[1]]+[st[2]]+[st[3]]+[st[4]];        
16       end;
17       if( s = ['1'..'8'] ) then writeln(i,' ',j,' ',i*j);
18     end;
19 end.
View Code

 

解法二:

 1 var 
 2   i,j,k:longint;
 3   s:set of 0..8;
 4 begin
 5   for i:=123 to 987 do
 6     for j:=1 to 8 do begin
 7       s:=[];
 8       s += [j];
 9       k:=i;
10       while(k>0) do begin
11         s += [k mod 10];
12         k := k div 10;
13       end;
14       k:=i*j;
15       while(k>0) do begin
16         s += [k mod 10];
17         k := k div 10;
18       end;
19       if( s = [1..8] ) then writeln(i,' ',j,' ',i*j);
20     end;
21 end.
View Code
原文地址:https://www.cnblogs.com/xin-le/p/3761251.html