您的位置:首页 > 其它

codevs天梯 高精度加法

2017-01-23 18:52 232 查看
题目:

就是求两数相加和(五百位)

分析:

不用说什么吧,就是水过去啦,一开始字符串没开ansistring还错了一个点


代码:

const

  maxn=1000;

var

  a,b,c:array [0..maxn] of longint;

  s1,s2:ansistring;

procedure init;

var

  i:longint;

begin

  readln(s1);

  s2:=copy(s1,1,pos(' ',s1)-1);

  for i:=length(s2) downto 1 do

    a[length(s2)-i+1]:=ord(s2[i])-48;

  delete(s1,1,pos(' ',s1));

  for i:=length(s1) downto 1 do

    b[length(s1)-i+1]:=ord(s1[i])-48;

end;

procedure main;

var

  i,j,k,len:longint;

begin

  if length(s1)>length(s2) then

    len:=length(s1)

  else

    len:=length(s2);

  for i:=1 to len do

    begin

      c[i]:=a[i]+b[i]+c[i];

      c[i+1]:=c[i] div 10;

      c[i]:=c[i] mod 10;

    end;

  if c[len+1]>0 then

    inc(len);

  for i:=len downto 1 do

    write(c[i]);

end;

begin

  init;

  main;

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: