«unsigned long long» может решить до 15 цифр.Квадратный корень из 100-значного числа в C++
Есть ли способ, чтобы найти квадратный-корень 100 значного числа?
«unsigned long long» может решить до 15 цифр.Квадратный корень из 100-значного числа в C++
Есть ли способ, чтобы найти квадратный-корень 100 значного числа?
Определенно. Одним из простых способов было бы использовать функцию mpz_sqrt() библиотеки многоточечной библиотеки GNU.
Этот вопрос разве на самом деле относится к C++, но вот список методов, которые вы можете использовать http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
В зависимости от того, если его домашнее задание или нет, вы можете быть в состоянии использовать 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;
}
Ничего себе, спасибо! :) – user2278992
Я знаю, что это, вероятно, не то, что вы ищете, но в случае, если вам не нужен точный результат, вы можете просто использовать 'double'. – Detheroc
@Detheroc, что было бы хорошим первым шагом для вычисления реального значения с помощью алгоритма, такого как метод newton. – didierc