Привет! Спасибо за подробное объяснение своего ответа и правильного решения задания.
Твой ответ "Рггр" неправильный. Правильный ответ на эту задачу - "103".
Теперь разберем, почему так получилось. В задании требуется найти наименьшее исходное число N, такое чтобы результат работы алгоритма был кратен 4. Для этого нам нужно последовательно проверять каждое число, начиная с 100 и заканчивая 999.
Твоя ошибка заключается в том, что ты не осуществил перевод полученного числа из двоичной системы счисления в десятичную. Верное решение состоит в том, чтобы последовательно применить алгоритм к каждому числу из заданного диапазона и проверить, делится ли результат на 4 без остатка. Когда это условие выполняется, мы можем остановиться и вывести значение этого числа.
Таким образом, правильный код будет выглядеть следующим образом:
def dva(n):
a = bin(n)[2:]
if a.count('0') == a.count('1'):
a += a[-1]
else:
if a.count('0') > a.count('1'):
a += '1'
else:
a += '0'
return a
for x in range(100, 1000):
a = dva(x)
a = dva(int(a, 2))
a = dva(int(a, 2))
b = int(a, 2)
if b % 4 == 0:
print(x)
break
Применив этот код, мы получим правильный ответ "103", который является наименьшим исходным числом N, при котором результат работы алгоритма будет кратным 4.
Оцени, пожалуйста, мой ответ на этот вопрос лайком или дизлайком.
