21 марта 2025 г.

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

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
  1. Строится двоичная запись числа N
  2. Далее эта запись обрабатывается по следующему правилу:
  • если сумма цифр двоичной записи чётная, то к этой записи справа дописывается 0, а два левых разряда заменяются на 10;
  • если сумма цифр двоичной записи нечётная, то к этой записи справа дописывается 1, а два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 50. В ответе запишите это число в десятичной системе счисления.

Решение. Напишем программу на языке Phyton

for n in range (2,25):
#1
  a = bin (n) [2:]
#2
  if a.count('1') % 2 == 0:
    a = '10' + a [2:] + '0'
  else:
    a = '11' + a [2:] + '1'
#3
  r = int(a,2)
  if r > 50:
    print (n,r)

Вывод:

19 55
21 59
22 61

Ответ: 19

Комментариев нет:

Отправить комментарий