主题:帮忙解一道题,急用!加分
肥牛宝宝
[专家分:0] 发布于 2006-06-19 19:24:00
要高精度加法的程序阿!!哪位高手帮帮忙。。。。
这里随便给两个加数:
7684684684653228+13548976542386698=?[em18]
回复列表 (共5个回复)
沙发
贺天行宝 [专家分:2300] 发布于 2006-06-20 18:09:00
http://noi.gnzx.gd.cn/html/2004-11/157.htm
program sum;
var s,s1,s2:string;
a,b,c:array [1..260] of integer;
i,l,k1,k2:integer;
begin
write('input s1:');readln(s1);
write('input s2:');readln(s2);
l:=length(s1);
k1:=260;
for i:=l downto 1 do
begin
a[k1]:=ord(s1[i])-48;
k1:=k1-1;
end;
k1:=k1+1;
l:=length(s2);
k2:=260;
for i:=l downto 1 do
begin
b[k2]:=ord(s2[i])-48;
k2:=k2-1;
end;
k2:=k2+1;
if k1>k2 then k:=k2 else k:=k1;
y:=0;
for i:=260 downto k do
begin
x:=a[i]+b[i]+y;
c[i]:=x mod 10;
y:=x div 10;
end;
if y<>0 then begin k:=k-1;c[k]:=y;
end;
for i:=k to 260 do write(c[i]);
writeln;
end.
加分哦!!
板凳
小田甜ts [专家分:210] 发布于 2006-07-01 13:50:00
[url=http://upload.programfan.com/upfile/200607011358292.rar]这个可以用小数,负数[/url]
3 楼
小田甜ts [专家分:210] 发布于 2006-07-01 13:52:00
注:
打印用HPNToStr
4 楼
zeroly [专家分:0] 发布于 2006-07-06 22:58:00
用2个数组就行了
很简单的
5 楼
小田甜ts [专家分:210] 发布于 2006-07-07 16:52:00
如果只是俩正整数那么只这么7行就行了:
{ } var
{1} a,b:string;
{2} i:integer;
{ }begin
{3} readln(a);
{4} readln(b);
{5} if length(a)>length(b) then
for i:=1 to length(a)-length(b) do insert('0',b,1)
else for i:=1 to length(b)-length(a) do insert('0',a,1);
{6} for i:=1 to length(a) do a[i]:=chr(ord(a[i])+ord(b[i])-ord('0'));
{7} for i:=1 to length(a) do
if (i=1) and (ord(a[i])-48+ord(a[i+1]>'9')>9)
then write(ord(a[i])-48+ord(a[i+1]>'9'))
else write((ord(a[i])-48+ord(a[i+1]>'9')) mod 10)
{ }end.
我来回复