高精度数的定义:
type
hp=array[1..maxlen] of integer;
1.高精度加法
procedure plus ( a,b:hp; var c:hp);
var i,len:integer;
begin
fillchar(c,sizeof(c),0);
if a[0]>b[0] then len:=a[0] else len:=b[0];
for i:=1 to len do begin
inc(c[i],a[i]+b[i]);
if c[i]>10 then begin dec(c[i],10); inc(c[i+1]); end; {进位}
end;
if c[len+1]>0 then inc(len);
c[0]:=len;
end;{plus}
2.高精度减法
procedure substract(a,b:hp;var c:hp);
var i,len:integer;
begin
fillchar(c,sizeof(c),0);
if a[0]>b[0] then len:=a[0] else len:=b[0];
for i:=1 to len do begin
inc(c[i],a[i]-b[i]);
if c[i]<0 then begin inc(c[i],10);dec(c[i+1]); end;
while (len>1) and (c[len]=0) do dec(len);
c[0]:=len;
end;
3.高精度乘以低精度
procedure multiply(a:hp;b:longint;var c:hp);
var i,len:integer;
begin
fillchar(c,sizeof(c),0);
len:=a[0];
for i:=1 to len do begin
inc(c[i],a[i]*b);
inc(c[i+1],(a[i]*b) div 10);
c[i]:=c[i] mod 10;
end;
inc(len);
while (c[len]>=10) do begin {处理最高位的进位}
c[len+1]:=c[len] div 10;
c[len]:=c[len] mod 10;
inc(len);
end;
while (len>1) and (c[len]=0) do dec(len); {若不需进位则调整len}
c[0]:=len;
end;{multiply}
4.高精度乘以高精度
procedure high_multiply(a,b:hp; var c:hp}
var i,j,len:integer;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
for j:=1 to b[0] do begin
inc(c[i+j-1],a[i]*b[j]);
inc(c[i+j],c[i+j-1] div 10);
c[i+j-1]:=c[i+j-1] mod 10;
end;
len:=a[0]+b[0]+1;
while (len>1) and (c[len]=0) do dec(len);
c[0]:=len;
end;
5.高精度除以低精度
procedure devide(a:hp;b:longint; var c:hp; var d:longint);
{c:=a div b; d:= a mod b}
var i,len:integer;
begin
fillchar(c,sizeof(c),0);
len:=a[0]; d:=0;
for i:=len downto 1 do begin
d:=d*10+a[i];
c[i]:=d div b;
d:=d mod b;
end;
while (len>1) and (c[len]=0) then dec(len);
c[0]:=len;
end;
6.高精度除以高精度
procedure high_devide(a,b:hp; var c,d:hp);
var
i,len:integer;
begin
fillchar(c,sizeof(c),0);
fillchar(d,sizeof(d),0);
len:=a[0];d[0]:=1;
for i:=len downto 1 do begin
multiply(d,10,d);
d[1]:=a[i];
while(compare(d,b)>=0) do {即d>=b}
begin
Subtract(d,b,d);
inc(c[i]);
end;
end;
while(len>1)and(c.s[len]=0) do dec(len);
c.len:=len;
end;
分享到:
相关推荐
Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算Java高精度计算
ACM高精度计算.ACM高精度计算.ACM高精度计算.ACM高精度计算.ACM高精度计算.
在IT领域,高精度计算是计算科学中的一个重要分支,它主要关注进行大整数运算和高精度浮点计算。在给定的“高精度计算接口库”中,我们可以看到它是基于VC++(Visual C++)的,这表明该库是为了在Windows环境下进行...
"java高精度计算算法与分析" java高精度计算是指在java编程语言中对数字进行高精度计算的方法和技术。高精度计算是指在计算过程中保持尽可能高的精度,以避免计算结果的不确定性和差异。java高精度计算通常是指使用...
黄金分割数的高精度计算对于这些研究工作具有非常重要的意义,特别是在高精度要求的领域,如证券分析、优选法以及美学构图等领域。 黄金分割数的高精度计算算法,包括模拟笔算开平方、二分法、牛顿迭代法和级数展开...
高精度计算,包括高精度加减乘(如何存储大整数?如何实现?如何进位?)
C++实现高精度计算类库,包含了FFT的乘法除法,开平方,用法类似java的bigint,实测速度比java的快很多
Java高精度计算文件,很好用!!!非原创,特此向代码原作者致敬
标题中的“高精度计算源码”表明这是一份与高精度计算相关的软件或库的源代码,可能用于处理需要极高精确度的数学运算。在计算机科学中,高精度计算通常涉及大整数运算、浮点数的高精度表示以及相关的算法优化。这类...
"高精度计算(C语言实现)" 高精度计算是指在计算机科学中,对于大数值的计算和处理。高精度计算通常是指在标准数据类型(整型、实型)不能表示的范围内的运算,例如,求两个 200 位的数的和。 高精度计算的主要...
你是否因为JS端的小数计算的精度不足而发愁过呢 其实有个不错的资源可以利用。 引用附件的JS,就可以轻松搞定JS的计算问题了。 使用例 <!-- function //+ alert(new BigDecimal("10").add(new BigDecimal("3E+...
在IT领域,尤其是在编程竞赛和算法设计中,高精度计算是一项至关重要的技能。高精度计算涉及处理超过标准数据类型所能表示的数值范围的计算,通常用于解决数学问题、科学计算或者金融领域的精确计算等。本章节我们将...
五、解决高精度计算问题的思路 解决高精度计算问题的思路有多种,包括: 1. 使用字符串来保存大整数 2. 使用数组来保存大整数 3. 模拟小学生列竖式做加法 4. 使用循环来实现乘法运算 六、参考程序 以下是大数...
根据给定文件的信息,我们可以总结出以下关于高精度计算(包括加法、减法、乘法和除法)的相关知识点: ### 1. 高精度计算简介 在计算机科学领域,传统的整数类型如 `int` 或 `long long` 等只能表示一定范围内的...
### C语言高精度计算使用数组详解 #### 一、引言 随着计算机技术的发展,越来越多的复杂计算任务得以实现自动化。然而,计算机的计算精度往往受限于硬件环境,特别是对于那些需要更高精度的数学计算场景。例如,在...
总之,螺线管线圈磁场的高精度计算是实现高性能MRI设备的关键。文章介绍的三种方法为螺线管线圈磁场计算提供了多种选择,它们各有优势,需要根据实际情况进行选择和应用。在高精度成像技术不断发展的今天,对螺线管...
标题:C语言高精度计算 描述:本文将详细介绍在C语言中实现高精度运算的方法,包括加法、减法、乘法以及除法等基本运算的处理方式,以及如何通过编程技巧来解决大数运算的问题。 高精度计算是计算机科学中的一个...
在计算机科学中,高精度计算(High-Precision Computing)是指使用大整数或者浮点数进行精确计算的方法,通常涉及到的领域包括数学、物理、工程、金融等需要精确计算的场景。在C语言中实现高精度算法,需要设计一套...
高精度计算,顾名思义,其核心在于实现远超普通浮点数计算精度的运算能力,满足专业领域对数值精度的极高要求。在处理大数运算或需要更高精度的场景中,高精度计算显示出了其独特的重要性,成为相关研究和应用中的...
Titan4 高精度计算 高精度计算 高精度计算 高精度计算 高精度计算