C++ C+中100位数字的平方根+;

C++ C+中100位数字的平方根+;,c++,square-root,C++,Square Root,“unsigned long long”最多可解算15位数字 有没有办法找到一个100位数的平方根。一个简单的方法是使用GNU多精度库函数。 < P>这个问题实际上不是与C++有关的,而是一个可以使用的方法列表。 根据它的家庭作业与否,您可能可以使用一个premade lib来处理bignums,也可以使用Boost.Multiprecision库。该库为一些流行的多精度实现提供包装 #include <iostream> #include <string> #inclu

“unsigned long long”最多可解算15位数字


有没有办法找到一个100位数的平方根。一个简单的方法是使用GNU多精度库函数。

< P>这个问题实际上不是与C++有关的,而是一个可以使用

的方法列表。 根据它的家庭作业与否,您可能可以使用一个premade lib来处理bignums,也可以使用Boost.Multiprecision库。该库为一些流行的多精度实现提供包装

#include <iostream>
#include <string>
#include <utility>

#include <boost/multiprecision/mpfr.hpp>

int main()
{
    std::string s(100, '0');
    s.at(0) = '1';
    boost::multiprecision::mpfr_float_100 f(std::move(s));
    boost::multiprecision::mpfr_float_100 sqrt = boost::multiprecision::sqrt(f);
    std::cout << sqrt.str() << std::endl;

    return 0;
}
#包括
#包括
#包括
#包括
int main()
{
std::字符串s(100,'0');
s、 在(0)=‘1’;
增强::多精度::mpfr_float_100 f(标准::移动);
boost::multiprecision::mpfr\u float\u 100 sqrt=boost::multiprecision::sqrt(f);

std::我知道这可能不是你想要的,但如果你不需要精确的结果,你可以使用
double
@Detheroc,这将是一个很好的第一步,用牛顿法这样的算法计算实际值。