首页 > 电脑 > 电脑教程

Pascal高精度减法什么是高精度算法

电脑教程 2026-06-26 菜科探索 +
简介:先来看一下什么是高精度算法:高精度算法,属于处理大数字的数学计算方法。

在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。

【菜科解读】

先来看一下什么是高精度算法:高精度算法,属于处理大数字的数学计算方法。

在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。

一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。

对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称谓是高精度数。

高精度算法就是能处理高精度数各种运算的算法。

此处我们主要讲解高精度减法。

如何从读入的算式中提取减数和被减数:先介绍一下高精度减法的实现过程:先读入一个算式,提取出里面的被减数和减数,我们可以通过Copy函数来实现。

具体代码如下:Readln(Suanshi);Len:=Length(Suanshi);For i:=1 to length(Suanshi) DoBeginIF Suanshi[i]='-' ThenBeginx:=Copy(Suanshi,Tmp,i-tmp);Tmp:=i+1;y:=Copy(Suanshi,Tmp,len-tmp+1);Break;End;这里很简单,不需要多说。

如何将字符串转换为整数数组?要想将字符串转换为整数数组,只需要一个For循环就可以解决了,先获得String的长度,然后循环就OK了。

(注意:因为我们的减法运算是从右到左的,所以要把转换过程稍微改一下)具体代码如下:For i:=1 to Length(x) doa[i]:=ord(x[length(x)-i+1])-ord('0');怎么样?很短吧!如何判断两个数的大小?由于该问题比较简单,不做详细介绍,只要用补零法,然后判断即可。

给个补零的函数:Function BuLing(a,b:String):String;Var i:Longint;BeginWhile length(a)Length(b) Do Insert('0',a,1);Buling:=aEnd;在运算时,如何处理借位问题?只需要判断a[i]是否小于b[i]如果小于的话,Dec(a[i+1]),a[i]+10,然后再减b[i]即可。

代码比较简单,请大家自己发挥。

至于那些比较简单的,如输入输出,就不再讲了,注意:输出时要注意判断最高位是不是0,然后在输出。

下面给出所有的代码,如有不足之处,请指出:Program Jianfa;Type ArryType=Array[1..10000] of Integer;Var x,y,Suanshi:String;Var Flag:Char;Var a,b:array[1..10000] of Integer;Var i,j,len,k,tmp:Longint;Function BuLing(a,b:String):String;Var i:Longint;BeginWhile length(a)Length(b) Do Insert('0',a,1);Buling:=aEnd;BeginFillchar(a,sizeof(a),0);Fillchar(b,sizeof(b),0);Flag:='+';Tmp:=1;Readln(Suanshi);Len:=Length(Suanshi);For i:=1 to length(Suanshi) DoBeginIF Suanshi[i]='-' ThenBeginx:=Copy(Suanshi,Tmp,i-tmp);Tmp:=i+1;y:=Copy(Suanshi,Tmp,len-tmp+1);End;End;IF Length(x) Pascal,高精度,减法,什么,是,算法,先来,看一下,

猜你喜欢

十大免费漫画app排行榜
十大免费漫画app排行榜
手机 2026-06-30
囧次元动漫官方入口
囧次元动漫官方入口
手机 2026-06-29
enable电脑上是什么意思?
enable电脑上是什么意思?
电脑教程 2026-06-28

Pascal高精度减法什么是高精度算法

点击下载文档

格式为doc格式