大数运算

大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的值。

计算大数的方法一般是用数组模拟大数的运算。

之前写过,基本思想就是从低位到高位的按照加减乘除的运算规则来做,就是什么进位借位的注意点就好了。

需要注意的细节问题如下:

  1.数据的长短,短的那部分处理完之后,要处理多出来的那半段,还有遗留的进位。

  2.做大数减法的时候需要搞清楚结果的正负号和运算时谁减去谁。

  3.输出的时候不能输出高位的0, 如500-500不能得到000。

  4.加法的进位只和前一位有关,但是减法的借位有时候会传递到很远,比如10000-9。

  5.0就是0,不要输出什么+0 -0。

记得老师讲评的时候提供一些扩展思路:其实整型数组的话一个数组元素可以表示不止一位数字啊之类的(没试过,感觉可能转化来转化去会比较麻烦)。。

今天看书看到用FFT做大数乘法的顿时觉得自己弱爆了。。

好吧。。然后找资料的过程中发现了这个博客。。有专门的大数分析啊。。http://www.cnblogs.com/lsx54321/category/397651.html

存下来好好看吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值