Есть число $x, необходимо найти ближайшее значение двойки($y), которое будет больше или равно $x, не используя циклы и рекурсию.
Пример:
$x = 12, $y = 16;
$x = 100, $y = 128;
$x = 32, $y = 32;
redreem
31.10.2013 - 20:27
студент?
скока платишь?
redreem
не угадал
Увидел турнирную сетку по олимпийской системе, и задался вопросом, можно ли рассчитать число слотов без цикла.
redreem
31.10.2013 - 20:42
так используй цикл и рекурсии и считай сколько влезет, зачем такое ограничение?
Игорь_Vasinsky
31.10.2013 - 20:44
пардон
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
redreem
слишком просто.
Пока придумал только через логарифм
Placido
31.10.2013 - 20:52
Находим двоичный логарифм числа $x, округляем до большего целого, возводим в полученную степень двойку:
echo pow(2, ceil(log($x, 2)));
redreem
31.10.2013 - 20:53
все очень просто:
1. первести число в 2-ичную систему
2. проверить, что число не попадает под шаблон '10000000....0', если попадает, то это и так степень двойки
3. взять строку = 1 . '0000...' - нулей столько, скольк разрядов в 1-м пункте
4. перевести строку обратно в десятичную систему
где мои пряники?
redreem
31.10.2013 - 20:55
Placidoну или так, наверно, если работает
Zzepish
31.10.2013 - 21:53
Теперь я понимаю, чем отличается программист, от кодера
Цитата (Zzepish @ 31.10.2013 - 17:53) |
Теперь я понимаю, чем отличается программист, от кодера |
Да уж, я даже не вкурил что такое "значение двойки($y)"
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Zzepish
2.11.2013 - 02:07
Arh
оно и есть просто значение двойки! А $y в скобках- просто уточнение, где эта двойка
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.