Алгоритм получает на вход натуральное число N > 1 и строит по нему новое число R следующим образом:
1. Строится двоичная запись числа N.
2. Вычисляется количество единиц, стоящих на чётных местах в двоичной записи числа N без ведущих нулей, и количество нулей, стоящих на нечётных местах. Места отсчитываются слева направо (от старших разрядов к младшим, начиная с единицы).
3. Результатом работы алгоритма становится модуль разности полученных двух чисел.
Пример. Дано число N = 39. Алгоритм работает следующим образом:
1. Строится двоичная запись: 3910 = 1001112.
2. Выделяем единицы на чётных и нули на нечётных местах: 100111.
На чётных местах стоят две единицы, на нечётных – один ноль.
3. Модуль разности равен 1.
Результат работы алгоритма R = 1.
При каком наименьшем N в результате работы алгоритма получится R = 5?
Ответ:
СтатГрад Вариант ИН2110301 08.02.2022 – задание №5
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
for i in range(1, 10000): n=bin(i)[2:] k1=0 k0=0 for j in range(len(n)): if j%2==0 and n[j]=='0': k0+=1 if j%2!=0 and n[j]=='1': k1+=1 if abs(k1-k0)==5: print(i) break |
Ответ: 1023