Задание 5 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу: а) Если Nчётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи; б) Если N нечётное, то к нему справа приписываются два нуля, а слева единица. Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Например, запись числа 1101 будет преобразована в 11110100. Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 215. В ответе это число запишите в десятичной системе счисления.
Answers & Comments
Ответ: Тут в задание опечатка скорее всего
Если делать по примеру из задания, будет такой код:
for i in range(20):
n = i
n = bin(n)[2:]
sum = 0
if int(n) % 2 == 0:
sum = str(n).count('1')
sum = bin(sum)[2:]
r = n + sum
else:
r = '11' + n + '00'
r = int(r, 2)
if r > 215:
print(i)
Если делать по условию задание, будет такой код:
for i in range(30):
n = i
n = bin(n)[2:]
sum = 0
if int(n) % 2 == 0:
sum = str(n).count('1')
sum = bin(sum)[2:]
r = n + sum
else:
r = '1' + n + '00'
r = int(r, 2)
if r > 215:
print(i)