Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Корень квадратный

Ответить
Настройки темы
C/C++ - Корень квадратный

Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2


Конфигурация

Профиль | Отправить PM | Цитировать


Ребята, как на С++ за 2 секунды можно найти корень квадратный из 10^3000?

Отправлено: 17:49, 17-11-2011

 

Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


pow(pow(10,3000),0.5)

-------
Information must be free!
Нет границ, есть только препятствия

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:54, 17-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Math.Sqrt(10e30);

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 23:19, 17-11-2011 | #3


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата Hector:
pow(pow(10,3000),0.5) »
в таком виде даже не компилируется, надо указывать тип чисел
и даже если указать выводит 1.#INF, pow(10,3000) не влазит даже в long double, надо использовать класс SuperLong

Последний раз редактировалось ferget, 18-11-2011 в 05:51.


Отправлено: 03:02, 18-11-2011 | #4


Аватара для yurfed

Ветеран


Сообщения: 20116
Благодарности: 3138

Профиль | Отправить PM | Цитировать


Любую степень корня вычисляем по схеме ( напримр: кубический корень из 6) = 6^(1/3) = 1.8171...
Квадратный - 6^(1/2)
Короче, под это подходит любая степень корня.
А цифры в уравнение подставит и Буратинко, деревянный человечек
Надеюсь понятно выразился

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Последний раз редактировалось yurfed, 18-11-2011 в 03:22.


Отправлено: 03:15, 18-11-2011 | #5


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Это понятно. Стоит задача такого плана:

Условие:
Для заданного натурального числа А нужно найти наибольшее число В такое, что B2 ≤ A.

Входящие данные:
Во входящем файле записано натуральное число A (A ≤ 103000).

Исходящие данные:
В исходящий файл выведите максимальное натуральное число B, квадрат которого не превышает A. Число B следует выводить без лидирующих нулей.

А идея была такой: имеем мы например число 385. Делим его пополам (без остачи), получаем 192. 1922 > 385. Делим, 192/2 = 96, 962 > 385. Делим 96/2 и так дальше.

Отправлено: 16:07, 20-11-2011 | #6


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Т.е. у вас есть 2 числа А и В. И нужно зная число А вывести число В, квадрат которого равен (или почти равен т.к. В должно быть натуральным) числу А.

А почему бы просто не взять корень из числа А каким бы оно ни было и просто отбросить дробную часть. Получим число В.

Или я что-то недопонимаю ???

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:14, 22-11-2011 | #7


Аватара для Prof

Пользователь


Сообщения: 64
Благодарности: 2

Профиль | Отправить PM | Цитировать


Ну а во что его запихнуть? ни в какой long long не влезет...

Отправлено: 22:32, 22-11-2011 | #8


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


В C# точно есть тип double думаю в С++ есть тоже.

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

пусть 111111111111111222222222222222

Затем брать половину строки (но не больше 15 чисел) и ставить десятичную точку

111111111111111.222222222222222e15

А дальше отдельно брать корень из степени 10 и корень из самого числа.


P.S. Точность double 324 знака до запятой и 15 после запятой.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 12:09, 24-11-2011 | #9


Аватара для yurfed

Ветеран


Сообщения: 20116
Благодарности: 3138

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
А дальше отдельно брать корень из степени 10 и корень из самого числа. »
Не мудрите. Пользуйтесь логарифмами и экспонентами

cmath (math.h)

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 24-11-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Корень квадратный

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
DFS не отображает корень. Flexos Microsoft Windows NT/2000/2003 2 15-01-2010 09:22
C/C++ - Как из числа извлеч корень? C++ XEN_STRANGER Программирование и базы данных 10 25-03-2009 10:22
Quad или Duo, квадратный или широкоэкранный монитор? Hattori_Hanzo Выбор отдельных компонентов компьютера и конфигурации в целом 13 17-09-2008 00:39
Запретить запись в корень папки Gangabass Microsoft Windows NT/2000/2003 5 07-06-2007 08:31
корень сайта Vampire Вебмастеру 12 02-02-2004 13:19




 
Переход