Форум » Вычисление количества информации » (№ 4930) (Пробный КЕГЭ, 2022) » Ответить

(№ 4930) (Пробный КЕГЭ, 2022)

Vetchina2000: Здравствуйте получился другой ответ в этом задании: (№ 4930) (Пробный КЕГЭ, 2022) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К этой записи дописываются ещё несколько разрядов по следующему правилу: а) если N чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи; б) если N нечётное, то к нему справа приписываются два нуля, а слева единица. Например, двоичная запись числа 1101 будет преобразована в 1110100. Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите наименьшее число N, для которого результат работы данного алгоритма больше 215. В ответе это число запишите в десятичной системе счисления. В ответах написано 23 Но когда я запускаю написанный мною код в питоне for n in range(1, 1000): s = bin(n)[2:] if s.count('1') % 2 == 0: s = s + bin(s.count('1'))[2:] else: s = '1' + s + '00' if int(s, 2) > 215: print(n) break то мне выдаёт ответ 22. Подскажите пожалуйста это на сайте ошибка или у меня.

Ответов - 4

noname: >if s.count('1') % 2 == 0: Здесь ошибка

Vetchina2000: noname пишет: а что именно не так

noname: Количество единиц в двоичном представлении числа != четности числа 0001 0001 = 17, для примера.


Vetchina2000: noname пишет: понял написал бред. спасибо за ответ



полная версия страницы