В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
skillvip
skillvip
06.01.2021 10:30 •  Информатика

Постфиксная запись В постфиксной записи (или обратной польской записи) операция записывается после двух операндов. Например, сумма двух чисел A и B записывается как A B +. Запись B C + D ∗ обозначает привычное нам (B+C)∗D, а запись A B C + D ∗ + означает A+(B+C)∗D. Достоинство постфиксной записи в том, что она не требует скобок и дополнительных соглашений о приоритете операторов для своего чтения — все операции выполняются подряд слева направо. Входные данные В единственной строке записано выражение в постфиксной записи, содержащее цифры и операции +, −, ∗. Цифры и операции разделяются пробелами. В конце строки может быть произвольное количество пробелов. Выходные данные Необходимо вывести значение записанного выражения. Гарантируется, что результат по модулю не превосходит 2⋅109. Примеры Ввод 8 9 + 1 7 - * Вывод -102 Решите на c++ или Python

Показать ответ
Ответ:
Приветусик11
Приветусик11
15.10.2020 14:34

stack = []

a = list(map(str, input().split()))

for elem in A:

 if elem in '+-*':

   a = stack[-2]

   b = stack[-1]

   stack.pop()

   stack.pop()

   if elem == '+':

     result = a+b

   elif elem == '-':

     result = a - b

   else:

     result = a * b

   stack.append(result)

 else:

   stack.append(int(elem))

print(stack[0])

Объяснение:

python

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота