大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的值。
计算大数的方法一般是用数组模拟大数的运算。
之前写过,基本思想就是从低位到高位的按照加减乘除的运算规则来做,就是什么进位借位的注意点就好了。
需要注意的细节问题如下:
1.数据的长短,短的那部分处理完之后,要处理多出来的那半段,还有遗留的进位。
2.做大数减法的时候需要搞清楚结果的正负号和运算时谁减去谁。
3.输出的时候不能输出高位的0, 如500-500不能得到000。
4.加法的进位只和前一位有关,但是减法的借位有时候会传递到很远,比如10000-9。
5.0就是0,不要输出什么+0 -0。
记得老师讲评的时候提供一些扩展思路:其实整型数组的话一个数组元素可以表示不止一位数字啊之类的(没试过,感觉可能转化来转化去会比较麻烦)。。
今天看书看到用FFT做大数乘法的顿时觉得自己弱爆了。。
好吧。。然后找资料的过程中发现了这个博客。。有专门的大数分析啊。。http://www.cnblogs.com/lsx54321/category/397651.html
存下来好好看吧。