На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N
- Далее эта запись обрабатывается по следующему правилу:
- если сумма цифр двоичной записи чётная, то к этой записи справа дописывается 0, а два левых разряда заменяются на 10;
- если сумма цифр двоичной записи нечётная, то к этой записи справа дописывается 1, а два левых разряда заменяются на 11.
Решение. Напишем программу на языке Phyton
for n in range (2,25):
#1
a = bin (n) [2:]
#2
if a.count('1') % 2 == 0:
a = '10' + a [2:] + '0'
else:
a = '11' + a [2:] + '1'
#3
r = int(a,2)
if r > 50:
#1
a = bin (n) [2:]
#2
if a.count('1') % 2 == 0:
a = '10' + a [2:] + '0'
else:
a = '11' + a [2:] + '1'
#3
r = int(a,2)
if r > 50:
print (n,r)
Вывод:
19 55
21 59
22 61
21 59
22 61
Ответ: 19
Комментариев нет:
Отправить комментарий