我现在正在解决UVA在线判断的一些问题,而且我遇到了必须存储非常大的整数值(有时是15位或更多)的情况。如果不使用第三方库,我有什么方法可以做到这一点? [类似于java中的BigInteger
类的任何东西?]。
答案 0 :(得分:2)
对于带整数的pow,http://en.wikipedia.org/wiki/Exponentiation_by_squaring
我建议GMP
请参阅此链接: - C++ handling very large integers
答案 1 :(得分:1)
需要第三方库(除非您想编写自己的库)。 GMP或MPIR是可以选择的。
答案 2 :(得分:1)
不,标准库中没有这样的结构。但总是可以检查GMP,MPFR或类似的。只需在Google中搜索。
答案 3 :(得分:1)
您可以使用GNU的libgmp进行C中的任意精度算术。
答案 4 :(得分:0)
最容易使用的是Boost Multiprecision
http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/index.html
这是一个简单的例子
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
int main(){
cpp_int a_really_big_number("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000");
a_really_big_number += 7;
}