|
0 / 0 / 0
Регистрация: 01.11.2022
Сообщений: 28
|
||||||||||||||||
Задача Калькулятор09.01.2023, 18:31. Показов 4943. Ответов 5
Добрый день!
Пытаюсь решить задачу Калькулятор: Задание связано с обратной польской нотацией. Она используется для парсинга арифметических выражений. Еще её иногда называют постфиксной нотацией. Для вычисления значения выражения, записанного в обратной польской нотации, нужно считывать выражение слева направо и придерживаться следующих шагов: Обработка входного символа: Если на вход подан операнд, он помещается на вершину стека. Если на вход подан знак операции, то эта операция выполняется над требуемым количеством значений, взятых из стека в порядке добавления. Результат выполненной операции помещается на вершину стека. Если входной набор символов обработан не полностью, перейти к шагу 1. После полной обработки входного набора символов результат вычисления выражения находится в вершине стека. Если в стеке осталось несколько чисел, то надо вывести только верхний элемент. Замечание про отрицательные числа и деление: в этой задаче под делением понимается математическое целочисленное деление. Это значит, что округление всегда происходит вниз. А именно: если a / b = c, то b ⋅ c — это наибольшее число, которое не превосходит a и одновременно делится без остатка на b. В текущей задаче гарантируется, что деления на отрицательное число нет. Формат ввода В единственной строке дано выражение, записанное в обратной польской нотации. Числа и арифметические операции записаны через пробел. На вход могут подаваться операции: +, -, *, / и числа, по модулю не превосходящие 10000. Гарантируется, что значение промежуточных выражений в тестовых данных по модулю не больше 50000. Формат вывода Выведите единственное число — значение выражения. Так вот, у меня тест падает когда: 1) Во входящих данных вообще нет какого-либо оператора + - / *. 2) При входных данных 4 13 5 / + ошибка одна:
ошибка
Что добавить для ситуации, когда нет операторов? Мне не догадаться... (должна выводится последняя введенная цифра)
0
|
||||||||||||||||
| 09.01.2023, 18:31 | |
|
Ответы с готовыми решениями:
5
Егэ задача про калькулятор |
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||
| 09.01.2023, 19:16 | ||||||
Сообщение было отмечено eltimc как решение
Решение
3
|
||||||
|
0 / 0 / 0
Регистрация: 01.11.2022
Сообщений: 28
|
|
| 09.01.2023, 20:16 [ТС] | |
|
Red white socks, Да, это решение прошло, спасибо! Буду разбираться.. Но я бы хотел что-то, из моего кода сделать, тк тут какое-то серьезное...
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||
| 09.01.2023, 21:47 | ||
|
Поэтому код непрозрачен и как следствие, нечитабелен, негибок и небезопасен (в плане возможных ошибок) У стека должно быть только 2 операции: 1. push (добавить элемент). В реализации через список: list.append 2. pop(взять элемент). list.pop Добавлено через 30 минут Ох, только сейчас заметил, что вы смешали стек с распарсиваемой последовательностью. Неудивительно, что и запутались...
3
|
||
|
0 / 0 / 0
Регистрация: 01.11.2022
Сообщений: 28
|
|
| 09.01.2023, 22:23 [ТС] | |
|
Red white socks, Большое вам спасибо! Надеюсь, когда-нибудь научусь также код писать..
0
|
|
|
0 / 0 / 0
Регистрация: 01.11.2022
Сообщений: 28
|
|
| 10.01.2023, 11:33 [ТС] | |
|
Red white socks, Можно задать вопрос по этому коду?
Я почти разобрался, но возник вопрос - stack.append(operands[step](stack.pop(),stack.pop())). Почему когда делаем append тут 2 раза stack.pop()? А я понял теперь, это для lambda 2 посл значения..
0
|
|
| 10.01.2023, 11:33 | |
|
Помогаю со студенческими работами здесь
6
Задача "Калькулятор с восстановлением ответа" Задача «Калькулятор»
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|