编个程序,两个大数相加

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:02:59
如10^100+10^100 要超出数值范围但又能算出来的,行吗

可用任何程序编

不会吧?只要超出范围就会出现编译错误的呀?
不肯能编出来的吧?

高精度计算就成了吧。。。
pascal的
var
a,b:array[1..10000] of longint;
c:char;
i,j,k,n,m:longint;
begin
while not eoln() do
begin
inc(n);
read(c);
a[n]:=ord(c)-ord('0');
end;
readln();
for i:=1 to n div 2 do
begin
j:=a[i];
a[i]:=a[n-i+1];
a[n-i+1]:=j;
end;
while not eoln() do
begin
inc(m);
read(c);
b[m]:=ord(c)-ord('0');
end;
for i:=1 to m div 2 do
begin
j:=b[i];
b[i]:=b[m-i+1];
b[m-i+1]:=j;
end;
if n>m then k:=n else k:=m;
for i:=1 to k do
begin
a[i]:=a[i]+b[i];
a[i+1]:=(a[i] div 10)+a[i+1];
a[i]:=a[i] mod 10;
end;
if a[k+1]<>0 then k:=k+1;
for i:=k downto 1do
write(a[i]);
end.
仅限于非负整数,加几行代码就能处理小数和负数了

可用字符串STRING来