【文件属性】:
文件名称:高精度运算.doc
文件大小:31KB
文件格式:DOC
更新时间:2022-07-21 14:27:44
算法 C++
高精度运算代码
高精度乘法:
计算的位数:
if lena mod 4<>0 then slena:=(lena div 4)+1 else slena:=lena div 4;
if lenb mod 4<>0 then slenb:=(lenb div 4)+1 else slenb:=(lenb div 4);
1.四位一存,边存边删:
k:=lb;
for i:=1 to lb do
begin
if i=lb then val(b1,b[i],l) else
begin
val(copy(b1,k-3,4),b[i],l); delete(b1,k-3,4);
k:=k-4;
end;
end;
2.c[i+j-1]:=c[i+j-1]+a[i]*a[j];
3.C[I+J]:=C[I+J]+C[I+J-1] DIV 10000
4.C[I+J-1]:=C[I+J-1] MOD 10000
5.打印从后往前打印,除了首位以外,其他位不足1000的要补'0'
6.倒着输出
7.如果2个位数相加的位置<>0那么从2个位数相加的位置开始输出,否则从2个位数相加的位置-1开始输出