我想对pow(2.0,(n-8))
的返回值进行除法通过 86399。
问题是10 <= n <= 100000000
.
如何处理这么大的返回值?
我在 Ubuntu 11.10 64 位上,使用 C++ 4.0.0-8
最佳答案
你不能,除非你使用大数字库。 64位不能容纳那么大的数字。即便如此,也可能需要一段时间。 2^(86392) 大约有 26000 位数字。
如果您只想获得模数,可以使用一些不错的算法。参见 http://en.wikipedia.org/wiki/Modular_exponentiation .
如果你还想尝试 bignums,请查看 http://gmplib.org/ .
关于c++ - 如何在 C++ 中处理大数据元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12034747/