|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.08.2013, 17:11 | #1 |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
Прошу помочь. 2^N. Не получается
http://acmp.ru/?main=task&id_task=40
Извините, возможно я дурак, но почему у меня не работает код к задаче 2^N. При N = 1000 выводит 302 цифры, все как положено. Ошибка на 3 тесте Код:
и еще один вопрос: Если ли разница в быстродействии между Код:
Код:
????? |
05.08.2013, 19:32 | #2 |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
0 ответов, ну может кто-нибудь поможет(
|
05.08.2013, 20:14 | #3 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
cout << pow(2, P); при этом будет создаваться временный объект, в который поместиться результат работы функции. Объект будет уничтожен сразу после выполнения <<. Во втором случае тоже самое, но выполнится присваивание (скорее всего компилятор оптимизирует это до того, что присваивания не будет - будет что-то типа перемещения). - если не оптимизирует то да - во втором варианте выполняется лишнее присваивание. Разница лишь в том, что во втором результат сохраняется не во временном объекте, который не сразу уничтожается. pow(2, P) работает эпически медленно (ведь pow не знает что у вас там 2 и что P - целое, он кастует их в double и возводит дробное число в дробную степень - а это очень сложная операция -поэтому и ошибка). Тут не надо использовать pow - ищите другое решение, которое я (и надеюсь другие форумчане тоже) не подскажу - а-то испорчу вам обучение )) Цитата:
|
||
05.08.2013, 20:21 | #4 | |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Код:
Код:
Цитата:
do not use your brain
Последний раз редактировалось Stilet; 05.08.2013 в 21:01. |
|
05.08.2013, 20:40 | #5 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
фигня в задачке в том, что требуется получить точный ответ, а максимальный точный при использовании стандартных типов (т.е. unsigned longlong) - 2^64-1, что уже меньше 2^72 из примера.
При использовании же даблов идет округление и могут случится самые странные погрешности. Зы: Нубский вопрос: а как работает свитч, через двоичный поиск или прямым перебором? Последний раз редактировалось Smogg; 05.08.2013 в 20:51. |
05.08.2013, 20:52 | #6 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
1267650600228229401496703205376.000 000
1,2676506×10³⁰ первое число - программа, второе калькулятор. стандартных типов - а чем тебе тип с плавающей точкой не стандартный вдруг? да и в условии нигде не сказано что вывод должен быть какого либо определённого типа.
do not use your brain
Последний раз редактировалось Кащей; 05.08.2013 в 21:00. |
05.08.2013, 21:16 | #7 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Вобщем, я думаю, что тут таки должно хватить стандартного long double (я получил с ним верный ответ для n = 1000 и для n = 2000 тоже), но ты ведь знаешь что на разных архитектурах у него разные диапазоны, и я хз на чем там acmp работает - но им такое решение не походит (на 3 тесте) :
Код:
Цитата:
acmp ждет длинку и т.к. n тут не большое - можно тупо последовательно умножать на 2 (даже тыщу раз) - такое решение acmp принимает (я проверил). |
|
05.08.2013, 21:16 | #8 | |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Цитата:
do not use your brain
|
|
05.08.2013, 21:16 | #9 |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
Я написал, у меня идет даже 2^1000 и 302 символа все как надо, админ говорит не принимаю, я писал на g++ у них стоит Vc++,
скрины: http://f3.s.qip.ru/10bCiROzf.jpg http://f3.s.qip.ru/10bCiROzh.jpg http://f4.s.qip.ru/10bCiROzi.jpg http://f3.s.qip.ru/10bCiROzj.jpg |
05.08.2013, 21:17 | #10 |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
Это к вопросу о том, что типо дальше 2^72 не идет
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритмы. Не прошу решить. Прошу помочь! | pascaluser | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 12.10.2012 08:45 |
Прошу помочь | lazarewoleg | HTML и CSS | 2 | 16.08.2012 12:18 |
Прошу помочь) | Егоргий | Помощь студентам | 3 | 03.06.2012 20:34 |
Прошу помочь! | DeusGPZ | Общие вопросы C/C++ | 4 | 17.10.2011 13:01 |