Квадратный корень из 100-значного числа в переполнении стека

«без знака долго-долго» может решить до 15 цифр.

Есть ли способ найти квадратный корень из 100-значный номер?

4

Решение

Вы также можете использовать Boost.Multiprecision библиотека. Эта библиотека предоставляет обертки для некоторых популярных реализаций 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;
}
4

Другие решения

Определенно. Один простой способ — использовать библиотеку GNU Multi-Precision mpz_sqrt () функция.

3

Этот вопрос не имеет никакого отношения к C ++, но вот список методов, которые вы можете использовать http://en.wikipedia.org/wiki/Methods_of_computing_square_roots

В зависимости от того, является ли это домашним заданием или нет, вы можете использовать готовую библиотеку для обработки бигнумов.

3
По вопросам рекламы [email protected]