Автор: Демоверсия 2025
Уровень: Базовый
Условие задачи:
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число чётное, то к двоичной записи числа слева дописывается 10;
б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
3. Результат переводится в десятичную систему и выводится на экран.
Укажите максимальное число R, которое может быть результатом работы данного алгоритма, при условии, что N не больше 12.
Теоретическая справка:
Самый базовый номер из всех, которые можно придумать под пятую задачу. Нечего останавливаться, лучше потренируйте перевод в n-ю систему счисления.
Код решения:
Комментарии к коду:
- R = []
Создаем пустой список R для хранения результирующих чисел. - for n in range(1, 12+1):
Итерируем по числам n от 1 до 12 включительно. - s = f'{n:b}'
Преобразуем текущее значение n в двоичную строку s. - if n % 2 == 0:
Проверяем, является ли текущее число n четным. - s = '10' + s
Если n четное, добавляем '10' в начало строки s. - else:
В противном случае, если n нечетное. - s = '1' + s + '01'
Добавляем '1' в начало и '01' в конец строки s. - r = int(s, 2)
Преобразуем измененную строку s из двоичной системы в десятичное число и сохраняем его в r. - R.append(r)
Добавляем полученное десятичное число r в список R. - print(max(R))
Печатаем максимальное значение из списка R.