大数运算

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

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

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

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

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

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

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

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

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

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

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

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

存下来好好看吧。

 

posted @ 2012-10-27 21:18  圣骑士wind  阅读(1770)  评论(0编辑  收藏  举报