OpenJudge

B02S01:中缀表达式求值

总时间限制:
1000ms
内存限制:
65536kB
描述

通常我们书写的表达式称为中缀表达式,因为它将运算符放在两个操作数中间,

许多情况下为了确定运算顺序,括号是不可少的,而如果是后缀表达式,就不必用括号了。

例如:

8–(3+2*6)/5+4可以写为:8 3 2 6 * + 5 /–4 +

其计算步骤为:

8 3 2 6 *+ 5 /–4 +

8 3 12 +5 /–4 +

8 15 5 /–4 +

8 3–4 +

5 4 +

9

编写一个程序,根据上述步骤求表达式的值。

输入
一行,是一个中缀表达式。输入的符号中只有这些基本符号“0123456789+-*/^()”,并且不会出现形如2*-3的格式。
表达式中的基本数字也都是一位的,不会出现形如12形式的数字。
所输入的字符串不需要判错。
输出
一个数字,表示运算结果。
样例输入
8-(3+2*6)/5+4
样例输出
9
提示
* 运算的结果可能为负数。
* “/”以整除运算。
* “^”为幂运算。
* 中间每一步都不会超过2^31。
全局题号
11911
添加于
2017-07-25
提交次数
13
尝试人数
12
通过人数
11