zoukankan      html  css  js  c++  java
  • 大数运算

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

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

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

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

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

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

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

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

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

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

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

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

    存下来好好看吧。

  • 相关阅读:
    oracle学习6
    oracle学习5
    oracle学习4
    oracle学习3
    oracle的过滤与排序
    poj1064 Cable master
    poj3169 Layout
    UVA
    poj2341 Expedition
    poj3617 Best Cow Line
  • 原文地址:https://www.cnblogs.com/mengdd/p/2742811.html
Copyright © 2011-2022 走看看