Форум » Выполнение и анализ алгоритмов для исполнителей » 5 номер ЕГЭ 2021 » Ответить

5 номер ЕГЭ 2021

Яша: На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К этой записи дописывается (дублируется) последняя цифра. 3) Затем справа дописывается 0, если в двоичном коде числа N чётное число единиц, и 1, если нечётное. 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным. Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 130, которое могло получиться в результате работы автомата. В ответе это число запишите в десятичной системе. Код: [pre2] for n in range(1, 1000): z = bin(n)[2:] r = bin(n)[2:] z += z[-1] if r.count('1') % 2 == 0: z = str(bin(n)) + '00' else: z = str(bin(n)) + '10' if int(z,2) > 130: print(int(z,2)) break[/pre2] Мне выдает 132, хотя правильный ответ 141. Что не так? Подскажите, пожалуйста.

Ответов - 1

Поляков: Яша пишет: 4) К полученному результату дописывается ещё один бит чётности так, чтобы количество единиц в двоичной записи полученного числа стало чётным. Вы неправильно выполняете этот пункт алгоритма.



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