Найти - Пользователи
Полная версия: задача ошибка кассового аппарата
Начало » Python для новичков » задача ошибка кассового аппарата
1
anotcher
Помогите решить задачку.
Кассовый аппарат вместо привычных продавцу десятичных чисел начал выдавать двоичные.
Техподдержка приедет только завтра, а магазин должен продолжать работать. Надо помочь.
Формат ввода
В первой строке записано десятичное число — общая сумма купленных в магазине товаров на данный момент.
Во второй строке указано двоичное число — сумма за последнюю покупку.
Формат вывода
Одно десятичное число — сумма прибыли за день с учётом последней покупки.
Мой код такой
 price = int(input())
summa = int(input())
st = 0
res = 0
while summa:
    res += (((summa % 10) * 2) ** st)
    summa //= 10
    st += 1 
print(f'{res + price}')
Ответ считается неверным, не пойму что именно неправильно.
py.user.next
  
>>> a = 783
>>> b = 10110111
>>> 
>>> oldb = b
>>> newb = n = 0
>>> while oldb:
...     newb += oldb % 10 * 2 ** n
...     oldb //= 10
...     n += 1
... 
>>> out = a + newb
>>> print(out)
966
>>>

Ты просто в следующий раз попробуй другой способ поиска ошибки. Сначала найди место в самом верху, где ошибки нет. Потом найди место после него, где ошибки нет. Потом найди место после него, где ошибка есть. Так ты установишь строку, в которой ошибка происходит. После того как строка найдена, открой консоль питона, скопируй в консоль эту строку с ошибкой и поисследуй эту строку саму в консоли питона. Так ты бы нашёл, что у тебя скобки неправильно стоят в операциях.
anotcher
py.user.next
Вообще убрал все скобки со своего примера - все решилось, спасибо за подсказку)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB