题目描述
下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。
* * *
x * *
-------
* * *
* * *
-------
* * * *
数字只能取代*,当然第一位不能为0。
写一个程序找出所有的牛式。
PROGRAM NAME: crypt1
INPUT FORMAT
Line 1: | 数字的个数。 |
Line 2: | N个用空格分开的数字(每个数字都∈{1,2,3,4,5,6,7,8,9}) 。 |
SAMPLE INPUT (file crypt1.in)
5
2 3 4 6 8
OUTPUT FORMAT
共一行,一个数字。表示牛式的总数。下面是样例的那个牛式。
2 2 2
x 2 2
------
4 4 4
4 4 4
---------
4 8 8 4
SAMPLE OUTPUT (file crypt1.out)
1
var n,i,t,j,k,l:longint;
b:array[0..9]of boolean;
function pd(t,m:longint):boolean;
var s:string;
i,z:longint;
begin
str(t,s);
if length(s)<>m then exit(true);
for i:=1 to length(s) do begin
val(s[i],z);
if b[z]=false then exit(true)
end;
exit(false);
end;
begin
readln(n);
for i:=1 to n do begin
read(t);
b[t]:=true
end;
for i:=100 to 999 do begin
if pd(i,3) then continue;
for j:=1 to 9 do if pd(j,1)=false then begin
for k:=1 to 9 do if pd(k,1)=false then begin
if pd(j*i,3) then continue;
if pd(k*i,3) then continue;
if pd((j*10+k)*i,4) then continue;
inc(l)
end;
end;
end;
writeln(l);
end.