高精度乘法(pascal)算法实现

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一、高精度乘法基本思想和加法一样。其基本流程如下:

①读入被乘数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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航