1. 程式人生 > >jzxx1188高精度加法

jzxx1188高精度加法

題目描述 計算a+b的值,a,b 皆不超過240位。

輸入 兩個數 每行一個

輸出 一個數

樣例輸入 111111111111111111111111111111111111 222222222222222222222222222222222222 樣例輸出 333333333333333333333333333333333333

滿分程式碼:
var 
  s1,s2,ans:string; 
  i,l,j,l1,l2:integer; 
  temp:char; 
begin 
  readln(s1); 
  readln(s2); 
  l1:=length(s1); 
  l2:=length(s2); 
  l:=l1; 
  if l<l2 then l:=l2; 
  for i:=1 to l1 div 2 do 
    begin 
      temp:=s1[i]; 
      s1[i]:=s1[l1-i+1]; 
      s1[l1-i+1]:=temp; 
    end; 
  for i:=1 to l2 div 2 do 
    begin 
      temp:=s2[i]; 
      s2[i]:=s2[l2-i+1]; 
      s2[l2-i+1]:=temp; 
    end; 
  while l1<l do 
    begin 
      s1:=s1+'0'; 
      inc(l1); 
    end; 
  while l2<l do 
    begin 
      s2:=s2+'0'; 
      inc(l2); 
    end; 
  for i:=1 to l do 
    begin 
      j:=j+ord(s1[i])+ord(s2[i])-96; 
      ans:=chr(j mod 10+48)+ans; 
      j:=j div 10; 
    end; 
  if j<>0 then ans:=chr(j+48)+ans; 
  writeln(ans); 
end.