Автор | Сообщение |
|
Отправлено: 10.09.23 21:56. Заголовок: (№ 4930) (Пробный КЕГЭ, 2022)
Здравствуйте получился другой ответ в этом задании: (№ 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
[только новые]
|
|
|
Отправлено: 10.09.23 22:08. Заголовок: >if s.count('..
>if s.count('1') % 2 == 0: Здесь ошибка
|
|
|
|
Отправлено: 10.09.23 22:14. Заголовок: noname пишет: а ч..
noname пишет: [quote]` а что именно не так
|
|
|
|
Отправлено: 10.09.23 22:17. Заголовок: Количество единиц в ..
Количество единиц в двоичном представлении числа != четности числа 0001 0001 = 17, для примера.
|
|
|
|
Отправлено: 10.09.23 22:40. Заголовок: noname пишет: пон..
noname пишет: [quote]` понял написал бред. спасибо за ответ
|
|
|
|