Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите найти ошибку в коде решения 5 задания егэ по информатике

ВАдим Тагиров Гуру (3094), закрыт 5 месяцев назад
Почему мой код выдаёт ошибку?
Дополнен 6 месяцев назад
 list = []
for n in range(256):
s = bin(n)[2:]
s = str(s)
if len(s) < 8:
s = '0' * (8 - len(s)) + s
R = int(s[::-1])
s = int(s)
result = int(str(s - R), 2)
list.append(result)
print(max(list))
Лучший ответ
Андрей Высший разум (483346) 6 месяцев назад
Вполне очевидно, что максимум достигается при N == 0b11110000. В качестве подтверждения:
 10000000 - 00000001 = 01111111 = 127
11000000 - 00000011 = 10111101 = 189
11100000 - 00000111 = 11011001 = 217
11110000 - 00001111 = 11100001 = 225
11111000 - 00011111 = 11011001 = 217
Но если хочешь кодом, то:
 print(max([n - int((bin(n)[:1:-1] + '0000000')[:8], 2) for n in range(256)])) 
Остальные ответы
basturman Мыслитель (8436) 6 месяцев назад
Чо это ваще на чем код написан втх хакер анонимус маска гай фокс мистар робат
П Знаток (284) 6 месяцев назад
Напиши, что за задание для начала, потом код сюда вставь. А не скрин.
ВАдим ТагировГуру (3094) 6 месяцев назад
все прикреплено, глаза разуйте
П Знаток (284) ВАдим Тагиров, max_result = 0 for N in range(256): # Для всех чисел от 0 до 255 # Получаем двоичное представление (8 бит) binary_rep = format(N, '08b') # Переворачиваем двоичное представление reversed_binary = binary_rep[::-1] # Переводим обратно в десятичное число reversed_number = int(reversed_binary, 2) # Вычисляем разницу result = N - reversed_number # Если результат положителен, обновляем максимальное значение if result > max_result: max_result = result return max_result
°••°••°••°••°••°••°••°••°••° Гуру (2790) 6 месяцев назад
Когда ты вычитаешь из s R, у тебя число вычитается, как число из десятичной системы счисления и получается -9999999. Функция int() ожидает, что у строки будут 0 и 1, а получила девятки
Похожие вопросы