C++ C++;大整数算法

C++ C++;大整数算法,c++,algorithm,integer,C++,Algorithm,Integer,嗨,我在做一个算法问题,要求得到完整的结果 5208334^2,即2712674305556 我可以用Charracter数组来表示整数。然而,我们能有更好的方法(更短或更快)做到这一点吗?有什么好主意吗 更新: 就我的情况而言,long和int64都可以工作,只是在返回之前我没有转换值: int val (int n1, n2) { ........ return (long long) n1 * n2; } 此数字适用于long-long(出现在GCC和c++11之后)类型或int64

嗨,我在做一个算法问题,要求得到完整的结果 5208334^2,即2712674305556 我可以用Charracter数组来表示整数。然而,我们能有更好的方法(更短或更快)做到这一点吗?有什么好主意吗

更新: 就我的情况而言,long和int64都可以工作,只是在返回之前我没有转换值:

int val (int n1, n2) {
........
return (long long) n1 * n2; 

}

此数字适用于
long-long
(出现在GCC和c++11之后)类型或
int64
(适用于c++11之前的某些其他编译器)。因此,最简单的解决方案是使用这种类型

因此,基本上是一个易于调整大小的字符数组。除非你想要一个
std::bitset
来做一些疯狂的魔术。使用
int64\u t
。或者可能是我自己的。试图以一个复制品的形式结束:(在许多其他东西中)。如果2712674305556是你需要的最高值,那么只有45位,64位应该可以。最多40位