6. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите такое наименьшее число N, для которого результат работы алгоритма больше 125. В ответе это число запишите в десятичной системе счисления.
Ответ: 31
Решение:
Проанализируем задачу, на вход подаётся некое число N, затем, производится двоичная запись этого числа и по правилам строится новое число R. В нашем случаи R=125. Запишем его в двоичном коде:
12510= 26*1 + 25*1 + 24*1 + 23*1 + 22*1 + 21*0 + 20*1 = 11111012
R на два разряда больше числа N, уберём два последних разряда у двоичной записи числа 125. Получим 11111, представим в десятичной записи:
1413121110= 24 + 23 + 22 + 21 + 20 = 16 + 8 + 4 + 2 + 1 = 31
Теперь переберём все комбинации с последними двумя разрядами, которые формируются по правилам указанным в условии задачи.
Двоичная запись | Десятичная запись | Выполнение алгоритма программы |
1111100 | 124 | НЕ ПОДХОДИТ. Результат работы алгоритма должен быть больше 125 |
1111101 | 125 | НЕ ПОДХОДИТ. Результат работы алгоритма должен быть больше 125 |
1111110 | 126 |
Проверяем: изначально 5 единиц, складываем их и делим на 2, в остатке 1, приписываем единицу справа 111111. Затем опять складываем все единицы и делим на 2. Шесть разделить на два в остатке 0, приписываем его справа - 1111110. Вот мы и нашли наше число. |
1111111 | 127 |
Ответ 31