Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (1)
  • Как расшифровать флаги от VK API?

    @prikazchikof
    Можно применить "жадный" алгоритм. Суть такова: на каждой итерации мы подбираем максимальную степень двойки, меньшую либо равную текущему числу. Запоминаем её как одно из слагаемых и отнимаем от числа. Повторяем до тех пор, пока число не станет равным 0.

    Пример: разложим число 123.
    Максимальная степень двойки, меньшая или равная 123 - 64. Запоминаем 64, отнимаем его от 123, получаем 59.
    Максимальная степень двойки, меньшая или равная 59 - 32. Запоминаем 32, отнимаем его от 59, получаем 27.
    Максимальная степень двойки, меньшая или равная 27 - 16. Запоминаем 16, отнимаем его от 27, получаем 11.
    Максимальная степень двойки, меньшая или равная 11 - 8. Запоминаем 8, отнимаем его от 11, получаем 3.
    Максимальная степень двойки, меньшая или равная 3 - 2. Запоминаем 2, отнимаем его от 11, получаем 1.
    Максимальная степень двойки, меньшая или равная 1 - 1. Запоминаем 1, отнимаем его от 1, получаем 0.
    Алгоритм закончил работу, в результате 123 = 64 + 32 + 16 + 8 + 2 + 1.

    Источник: http://ru.stackoverflow.com/questions/334200/Алгор...
    Ответ написан
    Комментировать