№5

Примеры решений: двоичная СС

Алгоритмы и исполнители

Примеры решений задач с двоичной СС

№ 4 Демоверсия 2021 (Уровень: Базовый)

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 

1. Строится двоичная запись числа N. 

2. К этой записи дописываются справа ещё два разряда по следующему правилу: 

а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001; 

б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2. Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления. 

for n in range(1, 100000):
    nb = f'{n:b}'
    for _ in range(2):
        nb += str(sum(int(x) for x in nb) % 2)
    r = int(nb, 2)
    if r > 77:
        print(n)
        break

№ 405 (Уровень: Базовый)

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1) Строится двоичная запись числа N.

2) Затем справа дописываются два разряда: символы 01, если число N чётное, и 10, если нечётное.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 81, которое может являться результатом работы этого алгоритма. В ответе это число запишите в десятичной системе

res = []
for n in range(1, 100000):
    nb = f'{n:b}'
    if n % 2 == 0:
        nb += '01'
    else:
        nb += '10'
    r = int(nb, 2)
    if r > 81: res.append(r)
print(min(res))

← К списку шпаргалок