讨论 / 找错误
B03 2015-09-05 05:48:14
点我顶贴 收藏 删除
var

g:array[0..10,1..9] of boolean;

x:array[1..31] of longint;

x1,x2:array[1..15] of longint;

s,ans:ansistring;

i,j,k,temp:longint;

procedure work(a,b:longint);

var k:longint;

begin

if g[a,b] then begin

x[i]:=x[i]+1;

for k:=1 to 9 do work(b,k);

end;

end;

procedure chen(num:longint);

var

i,l1,l2,j,l3:longint;

temp,s:ansistring;

a,b,c:array[1..200] of longint;

begin

l1:=length(ans);

str(num,s);

l2:=length(s);

for i:=1 to l1 do begin

a[i]:=0;

val(ans[l1-i+1],a[i]);

end;

for i:=1 to l2 do begin

b[i]:=0;

val(s[l2-i+1],b[i]);

end;

for i:=1 to l1+l2 do c[i]:=0;

for i:=1 to l1 do

for j:=1 to l2 do begin

c[i+j-1]:=c[i+j-1]+(a[i]*b[j]) mod 10;

c[i+j]:=c[i+j]+(a[i]*b[j] div 10)+(c[i+j-1] div 10);

c[i+j-1]:=c[i+j-1] mod 10;

end;

l3:=l1+l2;

while c[l3]=0 do l3:=l3-1;

ans:='';

for i:=l3 downto 1 do begin

str(c[i],temp);

ans:=ans+temp;

end;

end;

begin

readln(s);

val(copy(s,pos(' ',s)+1,length(s)-pos(' ',s)),k);

delete(s,pos(' ',s),length(s)-pos(' ',s)+1);

for i:=0 to 10 do

for j:=1 to 9 do

g[i,j]:=false;

for i:=1 to k do begin

readln(x1[i],x2[i]);

g[x1[i],x2[i]]:=true;

end;

for i:=1 to length(s) do begin

val(s[i],temp);

x[i]:=1;

for j:=1 to k do

if x1[j]=temp then work(temp,x2[j]);

end;

ans:='1';

for i:=1 to length(s) do chen(x[i]);

write(ans);

end.

就是只对两个点,帮忙找错。。

查看更多回复
提交回复