主题:[讨论]再次求助高手!!!能在2点前给我思路么????
jsn1993
[专家分:0] 发布于 2006-08-28 13:33:00
昨天 直到5点半多才有人回帖 真想踩啊
新问题:
编个10的9次方之内的高精度乘法程序
急啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。[em6]
回复列表 (共6个回复)
沙发
interegg [专家分:80] 发布于 2006-09-09 21:57:00
直接可用长整形啊!
[em1]
板凳
maxumi [专家分:2200] 发布于 2006-09-11 07:36:00
然则,乘数是长整型,结果就不是长整型了.
3 楼
bsralph [专家分:10] 发布于 2006-09-26 10:47:00
用数组啊
4 楼
waglongjuanfeng [专家分:90] 发布于 2006-10-05 01:33:00
设第一个是a(位数m),第二个是b(位数n)
for i:=1 to m do {相乘]
for j:=1 to n do
inc(a[i+j],a[i]*a[j]);
for i:=1 to m+n do {归整]
a[i+1]:=a[i] div 10;
a[i]:=a[i] mod 10;
5 楼
boxertony [专家分:23030] 发布于 2006-10-07 11:09:00
[quote]然则,乘数是长整型,结果就不是长整型了.[/quote]
用int64(或者long long)呀
6 楼
amyhab [专家分:120] 发布于 2006-10-20 21:08:00
Var
s1,s2:String;
A,B:Array[1..256] Of Integer;
i,j,jw:Integer;
Begin
Readln(s1);
Readln(s2);
FillChar(a,SizeOf(a),0);
FillChar(b,SizeOf(b),0);
For i:=1 To Length(s1) Do
A[i]:=Ord(s1[Length(s1)+1-i])-Ord('0');
For j:=1 To Length(s2) Do
B[j]:=Ord(s2[Length(s2)+1-j])-Ord('0');
jw:=0;
For i:=1 To 256 Do
Begin
jw:=a[i]*b[i]+jw;
a[i]:=jw Mod 10;
jw:=jw Div 10;
End;
For i:=256 DownTo 1 Do
If A[i]<>0 Then Break;
For j:=i DownTo 1 Do
Write(A[j]);
writeln;
End.
要加分哦[em2]
我来回复