Top.Mail.Ru
Ответы

ЕГЭ по информатике - 5 задание

задача:

Я написал код в Python для решения этой задачи и у меня получилось 65. Я проверил в ответах, а оказалось что правильный ответ - 63.

Подскажите где у меня ошибка в коде


  • получил 63, неправильно перенес строчку r = int(n_2, 2)

По дате
По рейтингу
Аватар пользователя
Профи
6мес

Потому что невнимательно расставляешь табуляцию: у тебя блок с переводом из двоичной в десятичную сс работает только тогда, когда не отрабатывает условие n_2.count('1') % 2 == 0:

1234567891011
 res = [] 
for n in range(1, 100): 
    b = bin(n)[2:] 
    if b.count('1') % 2 == 0: 
        b = b + '11' 
    else: 
        b = b + '01' 
    r = int(b, 2) 
    if r > 61: 
        res.append(r) 
print(min(res)) 

Совет: тебе в конце задания не за прикол дают пример работы алгоритма. Ну запарься ты да подставь число n и проверь, корректно он работает или нет. Вот жалко минуту потратить, а балл потеряешь. И ещё кое-что: ты хоть диапазон значений побольше бери, а то рискуешь недобрать значения. А если бы верным ответом было число, к примеру, 141? Ты бы даже об этом не узнал.