14. _St-25_03-kege-05(a)

Алгоритм получает на вход натуральное число N и строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.
2. Если в двоичной записи числа N нулей больше, чем единиц,

то самый левый ноль заменяется на единицу.
В противном случае самая правая единица заменяется на ноль.

3. Результат переводится в десятичную систему счисления.
4. Результатом работы алгоритма становится
   модуль разности исходного числа N и числа, полученного на предыдущем шаге.

Пример 1. Дано число N = 17. Алгоритм работает следующим образом.
1. Строим двоичную запись числа N: 1710 = 100012.
2. В полученном двоичном числе нулей больше, заменяем самый левый ноль: 10001 → 11001.
3. Переводим в десятичную систему: 110012 = 2510.
4. Вычисляем модуль разности: | 17 – 25 | = 8.

Пример 2. Дано число N = 28. Алгоритм работает следующим образом.
1. Строим двоичную запись числа N: 2810 = 111002.
2. В полученном двоичном числе нулей не больше, заменяем самую правую единицу: 11100 → 11000.
3. Переводим в десятичную систему: 110002 = 2410.
4. Вычисляем модуль разности: | 28 – 24 | = 4.
Результат работы алгоритма R = 4.

При каком наименьшем N, не превышающем 109 , в результате работы алгоритма получится наибольшее значение R?


Ваш ответ Для проверки решения задачи необходимо зарегистрироваться или авторизоваться!

Скрыть/Показать редактор кода (Python) time 1000 ms
  

Выберите правильный ответ, либо введите его в поле ввода

Комментарий учителя