![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 2
|
![]()
kak naiti naibolshuyu stepen' dvoiki ne previshauyshuyu opredelennogo chisla n.
Naprimer esli chislo 129 ,to togda programka dolzna pokazat' 128,to yest 2 v 7moi stepeni. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]()
Для возведения двойки в степень n можно воспользоваться следущим выражением: round(exp(n*ln(2)))
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 2
|
![]()
chtobi menshe opredelenogo chisla naprimer menshe 129 bilo 128.
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, можно и перебором найти требуемое решение:
Код:
Последний раз редактировалось Serge_Bliznykov; 11.10.2011 в 14:52. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 124
|
![]()
да, перебором, но не того.
Степень двойки это есть один установленный бит. 2,4,8,16,32,64,128,256,512.... и т.д. этот ряд все наверное помнят? таким образом для решения задачи надо найти всего то, максимально установленный бит в числе. индекс бита и есть степень. Код:
Русский язык не мой конёк
![]() Последний раз редактировалось Neobrat; 11.10.2011 в 16:23. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Neobrat
решение красивое (правда, не вижу принципиальных отличий от своего перебора. Ведь у меня тоже только степени двойки перебираются!) Но это не ПАСКАЛЬ! (Это Delphi) на Паскале ваше решение можно записать так: Код:
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 124
|
![]()
Принципиальных различий и быть не может, из за математического представления степени двойки.
Есть только разница в подходе поиска этого числа. Вы ищите степень двойки меньше чем введенное число, я же ищу старший установленный бит в веденном числе.
Русский язык не мой конёк
![]() |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Что-то вы всё мудрите-мудрите, ещё может побитовый сдвиг вспомним )) задача решается логарифмом ))
Код:
Последний раз редактировалось phomm; 12.10.2011 в 12:13. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 124
|
![]()
phomm
Любая задача имеет несколько решений, и эта задача не исключение. Вы приводите общее-математическое решение задачи. мы приводим "программистское" - частное решение, именно для основания 2. и вы не поверите, но мы используем побитовый сдвиг(shl).
Русский язык не мой конёк
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Квадраты нескольких 3-xзначных чисел оканчиваются 3 цифрами, которые составляют исходные числа. Найти эти числа. Паскаль | zig1 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 12.10.2011 09:32 |
найти определённые простые числа в интервале [Паскаль] | Юкоша | Помощь студентам | 4 | 24.12.2010 15:57 |
Найти наибольшую по длине последовательность простых чисел в массиве | Лесная Эльфийка | Помощь студентам | 2 | 14.12.2010 16:24 |
Паскаль. Из заданного числа найти сумму его цифр | Matlashov | Помощь студентам | 8 | 26.11.2009 14:27 |