⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac1177.pas

📁 同济大学 Online在线题库 AC源代码合集 程序设计竞赛必看资料
💻 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 + -