软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
高精度乘法(pascal)算法实现

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

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



相关文章

相关软件