📄 ac1177.pas
字号:
program tju1177;
const
maxl=10001;
type
bignum=array[1..maxl]of byte;
var
a,k,t:bignum;
n,u,la,lt,i:word;
c:char;
b:boolean;
procedure readbig;
begin
repeat read(c);until c>'0';
lt:=1;t[1]:=ord(c)-48;
while not seekeoln do begin
read(c);inc(lt);t[lt]:=ord(c)-48;
end;
readln;
end;
begin
readln(n);
for u:=1 to n do begin
fillchar(a,sizeof(a),0);
fillchar(k,sizeof(k),0);
readbig;
la:=(lt+1) shr 1;
for i:=1 to la do
a[i]:=t[la+1-i];
if odd(lt) then
if a[la]=9 then begin a[la]:=0;inc(la);a[la]:=1;end else inc(a[la])
else begin
inc(la);a[la]:=1;
end;
b:=false;
for i:=lt shr 1 downto 1 do
if t[i]<t[lt+1-i] then begin
b:=false;break;
end
else if t[i]>t[lt+1-i] then begin
b:=true;break;
end;
if b then begin
i:=1;while a[i]=0 do begin a[i]:=9;inc(i);end;
dec(a[i]);if a[la]=0 then dec(la);
end;
readbig;
for i:=1 to lt do
k[i]:=t[lt+1-i];
if lt>la then la:=lt;
for i:=1 to la do begin
inc(a[i],k[i]);
inc(a[i+1],a[i] div 10);
a[i]:=a[i] mod 10;
end;
if a[la+1]>0 then inc(la);
if (a[la]=1) and (a[la-1]>0) then begin
dec(la);
for i:=la downto 1 do write(a[i]);
for i:=1 to la do write(a[i]);
end
else begin
if a[la]=1 then begin dec(la);a[la]:=9;end else dec(a[la]);
for i:=la downto 1 do write(a[i]);
for i:=2 to la do write(a[i]);
end;
writeln;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -