表达式转换(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
- 通过率
- ?
- 上传者