目录
开场白
说来,这也是一个比较刁钻的问题。也不知道是哪个人,闲的没事干,竟然想到了一个叫做“高精度运算”的东西,让算法又多了一种类型。不过,这是一种非常easy的算法,简称:有手就行的算法。
说了这么多,好像还没有介绍什么是高精度算法呢。所谓高精度算法,其实,就是“加、减、乘、除”这几种普通的运算了。
“不会吧!就是一个简简单单的加减乘除,你就好意思拿上台面来讲?”
客官,您可先甭着急。且听我先把话说完:
“在利用计算机进行数值计算的时候,我们有时会遇到这种问题:有些计算要求的精度高,我们希望计算的位数超过几十位甚至达到几百位,这样我们就不能使用语言自带的数据结构来进行运算了。这个时候,我们就需要用到‘高精度运算’了。”
高精度运算的大致思路
我们应该选用什么类型存储来进行计算呢?
char类型?string类型?
确实,我们可以先用char类型来获取用户的输入。那么,接下来呢?我们不能使用两个字符串进行加减。
或许,可以用链表?或许,可以用结构体来实现这些操作?
这些想法那肯定是更离了个大谱了。其实,我们也是不难想到的——用数组存储。(当然,如果你想出来怎么用链表/结构体来存储的话,可以给我看看,让我长长见识)。我们可以申请一个长度为1024的数组,就已经够我们来使用了。这就解决了存储的问题。
那么,在运算的时候,应该怎么运算呢?
我们不妨想到:运用一个我们小学学过的东西来解决——竖式。
当然,这里头比较复杂的是进位。我们等遇到以后在详细讲解。