Задание 5. Анализ и построение алгоритмов для исполнителей.

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число чётное, то к двоичной записи числа слева дописывается 10;
б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 410 = 1002 результатом является число 2010 = 101002, а для исходного числа 510 = 1012 это число 5310 =1101012.
Укажите максимальное число R, которое может быть результатом работы данного алгоритма, при условии, что N не больше 12. В ответе запишите это число в десятичной системе счисления.

Переведем алгоритм на язык программирования

for N in range(12): #перебираем по порядку N
 N1 = bin(N)[2:] #переводим в бинарный код
 if N % 2 == 0: # в зависимости от четности выполняется условие
  N1 = ’10’ + N1
 else:
  N1 = ‘1’ + N1 + ’01’
 R = int(N1, 2) # переводим число R в целое число
 print(N, R)

В полученных значениях N и R находим нужную строку, это число 109.

Ответ: 109

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *