boost::multiprecision::cpp_int 表现得像 unsigned long long
boost::multiprecision::cpp_int acting like unsigned long long
所以我有一个编程作业,其中我必须使用 64 位数字。我目前正在使用 boost::multiprecision::cpp_int 库,但无法大量使用它。
例如-
#include <boost/multiprecision/cpp_int.hpp>
int main()
{
boost::multiprecision::cpp_int n1 =123341257612045876129038576124390847381295732;
}
这是代码太长的错误。
经过实验,似乎 cpp_int (应该包含任意大的数字)就像一个 unsigned long long (如上图所示),我该如何解决这个问题?
使用字符串构造函数,因为你不能在 C++ 中表达初始化器,否则。
#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
int main() {
boost::multiprecision::cpp_int n1("123341257612045876129038576124390847381295732");
n1 *= n1;
n1 *= n1;
std::cout << n1 << "\n";
}
版画
231437371927256216552064578371685752056581253909626001052591740261122589692668963795268703088073326299461305156397520102373182511147316463882992573577585984095769469664077598976
也就是 ~2.31 × 10^176
所以我有一个编程作业,其中我必须使用 64 位数字。我目前正在使用 boost::multiprecision::cpp_int 库,但无法大量使用它。
例如-
#include <boost/multiprecision/cpp_int.hpp>
int main()
{
boost::multiprecision::cpp_int n1 =123341257612045876129038576124390847381295732;
}
这是代码太长的错误。 经过实验,似乎 cpp_int (应该包含任意大的数字)就像一个 unsigned long long (如上图所示),我该如何解决这个问题?
使用字符串构造函数,因为你不能在 C++ 中表达初始化器,否则。
#include <boost/multiprecision/cpp_int.hpp>
#include <iostream>
int main() {
boost::multiprecision::cpp_int n1("123341257612045876129038576124390847381295732");
n1 *= n1;
n1 *= n1;
std::cout << n1 << "\n";
}
版画
231437371927256216552064578371685752056581253909626001052591740261122589692668963795268703088073326299461305156397520102373182511147316463882992573577585984095769469664077598976
也就是 ~2.31 × 10^176