C/C++之数据结构与算法1:高精度计算-加法

本文介绍了高精度算法的概念,即用于处理超长位数计算的算法。通过C/C++,作者展示了如何使用数组存储高精度数字并实现加法运算,采用倒序存储以简化进位处理。文章从开场白引入,详细阐述了高精度运算的思路,并逐步解析了加法算法的实现过程。
摘要由CSDN通过智能技术生成

目录

开场白

高精度运算的大致思路

开始写代码吧~

高精度加法

1.先来一些开胃小菜

2.接着开始看算法


开场白

说来,这也是一个比较刁钻的问题。也不知道是哪个人,闲的没事干,竟然想到了一个叫做“高精度运算”的东西,让算法又多了一种类型。不过,这是一种非常easy的算法,简称:有手就行的算法。

说了这么多,好像还没有介绍什么是高精度算法呢。所谓高精度算法,其实,就是“加、减、乘、除”这几种普通的运算了。

“不会吧!就是一个简简单单的加减乘除,你就好意思拿上台面来讲?”

客官,您可先甭着急。且听我先把话说完:

“在利用计算机进行数值计算的时候,我们有时会遇到这种问题:有些计算要求的精度高,我们希望计算的位数超过几十位甚至达到几百位,这样我们就不能使用语言自带的数据结构来进行运算了。这个时候,我们就需要用到‘高精度运算’了。”

高精度运算的大致思路

我们应该选用什么类型存储来进行计算呢?

char类型?string类型?

确实,我们可以先用char类型来获取用户的输入。那么,接下来呢?我们不能使用两个字符串进行加减。

或许,可以用链表?或许,可以用结构体来实现这些操作?

这些想法那肯定是更离了个大谱了。其实,我们也是不难想到的——用数组存储。(当然,如果你想出来怎么用链表/结构体来存储的话,可以给我看看,让我长长见识)。我们可以申请一个长度为1024的数组,就已经够我们来使用了。这就解决了存储的问题。

那么,在运算的时候,应该怎么运算呢?

我们不妨想到:运用一个我们小学学过的东西来解决——竖式。

当然,这里头比较复杂的是进位。我们等遇到以后在详细讲解。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值