一、高精度乘法基本思想和加法一样。其基本流程如下:
①读入被乘数s1,乘数s2 ②把s1、s2分成4位一段,转成数值存在数组a,b中;记下a,b的长度k1,k2; ③i赋为b中的最低位; ④从b中取出第i位与a相乘,累加到另一数组c中;(注意:累加时错开的位数应是多少位 ?) ⑤i:=i-1;检测i值:小于k2则转⑥,否则转④ ⑥打印结果
例:程序下载
program chengfa; const n=100; type ar=array [1..n] of integer; var a,b:ar; k1,k2,k:integer; c:array [1..200] of integer; s1,s2:string; procedure fenge(s:string;var d:ar; var kk:integer); var ss:string; i,code:integer; begin i:=length(s); kk:=n; repeat ss:=copy(s,i-3,4); val(ss,d[kk],code); kk:=kk-1; s:=copy(s,1,i-4); i:=i-4; until i<0; kk:=kk+1; end; procedure daying; var i:integer; begin write(c[k]); for i:=k+1 to 2*n do begin if c[i]<1000 then write('0'); if c[i]<100 then write('0'); if c[i]<10 then write('0'); write(c[i]); end; writeln; end; begin init; jisuan; daying; end. |