Форум программистов, компьютерный форум CyberForum.ru

Извлечь любой корень из любого большого числа - C++

Восстановить пароль Регистрация
 
Wu_Tang
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 4
21.10.2015, 17:55     Извлечь любой корень из любого большого числа #1
нужно разработать Windows-приложение для извлечения любого корня из любого большого числа.
как бы функционал sqrt ограничен, как быть со значениями выходящими за пределы не знаю желательно на плюсах
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2015, 17:55     Извлечь любой корень из любого большого числа
Посмотрите здесь:

Из положительных элементов массива извлечь корень, отрицательные возвести в квадрат C++
C++ Как извлечь корень из числа?
Как извлечь корень из числа без функции с++ ? C++
C++ Описать функцию возведения любого натурального числа n в куб без операции умножения, пользуясь следующим свойством: куб любого числа n равен
Из положительных элементов извлечь квадратный корень, отрицательные возвести в квадрат, нулевые заменить на число В C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4306 / 3727 / 1256
Регистрация: 14.04.2014
Сообщений: 14,599
21.10.2015, 18:09     Извлечь любой корень из любого большого числа #2
pow() используй.
Wu_Tang
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 4
21.10.2015, 18:15  [ТС]     Извлечь любой корень из любого большого числа #3
он не имеет ограничений вообще? а если число over 99999999999999999999??
DrOffset
6458 / 3832 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
21.10.2015, 18:47     Извлечь любой корень из любого большого числа #4
Цитата Сообщение от Wu_Tang Посмотреть сообщение
over 99999999999999999999?
boost::multiprecision
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/number.hpp>
 
int main()
{
    namespace mp = boost::multiprecision;
    
    mp::int1024_t num("99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999");
    
    std::cout << "source: " << num << std::endl;
    
    mp::int1024_t res = mp::sqrt(num);
    
    std::cout << "result: " << res << std::endl;
}
http://rextester.com/RLN36976

Добавлено через 3 минуты
Цитата Сообщение от Wu_Tang Посмотреть сообщение
он не имеет ограничений вообще?
Такого в реальности не бывает. У всего есть предел.
Yandex
Объявления
21.10.2015, 18:47     Извлечь любой корень из любого большого числа
Ответ Создать тему
Опции темы

Текущее время: 03:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru