На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) Затем справа дописываются два разряда: символы 01, если число N чётное, и 10, если нечётное.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 62, которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе.

Ответы

Ответ дал: MrSolution
1

Программа:

for N in range(0, 17):

   R = bin(N)

   if N % 2 == 0:

       R += "01"

   else:

       R += "10"

   if int(R, 2) > 62:

       print(int(R, 2))

Результатом работы программы будет одно число: 65.

Оно является ответом.

Решение руками:

Пойдем от обратного: 62_{10}=111110_{2},\;\Rightarrow\;1111_2

Поскольку 1111_2 нечетное (оканчивается на 1), то при выполнении алгоритма, мы добавим к этому числу 10₂ и получим число 62₁₀. Но нам на 1 большее. Тогда проделаем ту же самую процедуру с числом 1111_2+1_2=10000_2,\;\Rightarrow\;1000001_2=65_{10}.

Вас заинтересует