На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) в конец числа (справа)
б) к этой записи справа
Полученная таким образом запись является двоичной записью искомого числа R.
Укажите минимальное число R, которое
Рассмотрим числа, большие,
5510 = 1101112 — не может являться результатом работы алгоритма.
5610 = 1110002 — может являться результатом работы алгоритма.
Ответ: 56.
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
if s.count('1') % 2 == 0:
s += '1'
else:
s += '0'
if s.count('1') % 2 == 0:
s += '1'
elif s.count('1') % 2 == 1:
s += '0'
r = int(s, 2) # перевод в десятичную систему
if r > 54:
print(r)
break
Приведём решение Лилии Салимуллиной на языке Python.
for n in range(1,100):
r = bin(n)[2:]
r = r + str(1 - r.count("1") % 2)
r = r + str(1 - r.count("1") % 2)
r = int(r,2)
if r > 54:
print(r)
break

