大数运算

来源:互联网 发布:服装零售收银软件 编辑:程序博客网 时间:2024/05/17 08:16

大数运算

大数运算可以说就是模拟了,模拟小学的最基础的竖式运算,用string或char数组保存,然后模拟就好了

一、 大数加法

s1,s2存储大数竖式运算是从个位开始运算的,所以s1[s1.size()-1-i]+s2[s2.size()-1-i],如果给位大于了9,则此位%10,前一位加一。注意第一位,如果加完后大于9,则在字符串的最前面加个1。

二、 大数减法

和加法一样的,但是要判断绝对值的大小,要保证为大的数减去小的数,最后判断是否在结果前加个负号。

三、 大数乘法

还是模拟竖式计算,每位计算后加在一起。有个学长和我讲他当初做大型试验的时候就是大数,他问老师乘法怎么写,老师回答他说,加法怎么写乘法就怎么写。他觉得很有道理,然后他就一次一次加上去的,是把a加了b次,还要要求用链表写的,他还没有delete,不光是时间慢了很多,内存不够,硬盘充当虚拟内存,最后提醒储存空间不足。

四、 大数除法

还是模拟竖式运算,心要细。

 

不得不说,java写大数要比c/c++要方便了很多,python更是舒服的不得了。

原创粉丝点击