/ / 题库 /

表达式转换(express)

表达式转换(express)

测试数据来自 wjszez/2048

平常我们书写的表达式称为中缀表达式,因为它将运算符放在两个操作数中间,许
多情况下为了确定运算顺序,括号是不可少的,而后缀表达式就不必用括号了。
书写后缀表达式时,采用运算符紧跟在两个操作数之后,从而实现了无括号处理和
优先级处理,使计算机的处理规则简化为:从左到右顺序完成计算,并用结果取而
代之。
例如:8-(3+2*6)可以写为:8 3 2 6 * + -
其计算步骤为:
8 3 2 6 * + -
8 3 12 + -
8 15 -
-7
编写一个程序,完成这个转换,要求输出的每一个数据间都留一个空格。
输入:
只有 1 行,是 1 个中缀表达式。只会包括这些符号:0123456789+-*/^(),并且不会
出现形如 2*-3 的格式。表达式中的数也都是一位整数,不会出现形如 42 的数。输
入数据保证符合上述要求。
输出:
若干个后缀表达式,第 i+1 行比第 i 行少 1 个运算符和 1 个操作数,最后 1 行只有
1 个数,表示运算结果。
运算结果可能为负数,“/”按整除规则进行运算。并且中间每一步的结果都不会超
过 2^31。
输入输出样例:
express.in
8-(3+2*6)/5+(8-7/3)
express.out

8 3 2 6 * + 5 / - 8 7 3 / - +
8 3 12 + 5 / - 8 7 3 / - +
8 15 5 / - 8 7 3 / - +
8 3 - 8 7 3 / - +
5 8 7 3 / - +
5 8 2 - +
5 6 +
11

信息

ID
2085
难度
(无)
分类
(无)
标签
递交数
0
已通过
0
通过率
?
上传者