Задание №4433. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу:     а) если N чётное, то к нему справа приписываются два нуля, а слева единица;     б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи; Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Например, исходное число 410 = 1002 преобразуется в число 1100002 = 4810, а исходное число 1310 = 11012 преобразуется в число 1101112 = 5510. Укажите такое наименьшее число N, для которого число R больше числа 190. В ответе запишите это число в десятичной системе счисления.

Задание №4433.
Формальное исполнение простого алгоритма. ЕГЭ по информатике

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

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

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

    а) если N чётное, то к нему справа приписываются два нуля, а слева единица;

    б) если N нечётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;

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

Например, исходное число 410 = 1002 преобразуется в число 1100002 = 4810, а исходное число 1310 = 11012 преобразуется в число 1101112 = 5510.

Укажите такое наименьшее число N, для которого число R больше числа 190. В ответе запишите это число в десятичной системе счисления.

Пояснение:
Решим задание, написав программу на языке программирования Python.

final_list = []

for n in range(1, 1000):
    binary_n = bin(n)[2:]
    if n % 2 == 0:
        binary_n = '1' + binary_n
        binary_n += '00'
    else:
        binary_n += bin(sum(int(i) for i in binary_n))[2:]

    R = int(binary_n, 2)
    if R > 190:
        final_list.append(n)

print(min(final_list))

Таким образом, 16 — минимальное число N, для которого число R больше числа 190.

Показать ответ

Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке


Тест с похожими заданиями