能帮帮我看一下为什么有一个测试点没过呢???
不胜感激涕零!!!
(我把刚得到的可用积分全花上了)
var i,j,k,m,n,ans,le:longint; s:string;
a:array[1..1000]of integer;
procedure zhuan;
var i,j,k:integer;
begin
for i:=1 to le do
a[le-i+1]:=ord(s[i])-ord('0');
end;
function check:boolean;
var i,j,k:integer;
begin
check:=true;
for i:=1 to (le div 2) do
if a[i]<>a[le-i+1] then begin check:=false; exit; end;
end;
procedure main;
var i,j,k:longint;
b:array[1..1000]of integer;
begin
fillchar(b,sizeof(b),0);
for i:=1 to le do
b[le-i+1]:=a[i];
for i:=1 to le do
begin
a[i]:=a[i]+b[i];
a[i+1]:=a[i] div n+a[i+1];
a[i]:=a[i] mod n;
end;
if a[le+1]<>0 then inc(le);
end;
begin
readln(n);
readln(s);
fillchar(a,sizeof(a),0);
le:=length(s);
zhuan;
if check then begin writeln('0');halt; end
else
begin ans:=0;
while not check do
begin
main;
inc(ans);
if ans=30 then begin writeln('Impossible');halt;end;
end;
end;
writeln(ans);
end.
第二个点是16进制
会出现ABCDEF代表10 11 12 13 14 15
你的procedure zhuan 需要改动