4

'unsigned long long'は 15 桁まで解決できます。

100桁の数の平方根を求める方法はありますか?

4

3 に答える 3

4

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;
}
于 2013-04-14T11:44:52.820 に答える
3

絶対。簡単な方法の 1 つは、GNU 多精度ライブラリのmpz_sqrt()関数を使用することです。

于 2013-04-14T11:04:57.403 に答える
3

この質問は実際には C++ とは関係ありませんが、使用できるメソッドのリストは次のとおりですhttp://en.wikipedia.org/wiki/Methods_of_computing_square_roots

宿題かどうかに応じて、事前に作成されたライブラリを使用してbignumを処理できる場合があります

于 2013-04-14T11:05:18.870 に答える