Problem1735--逆波兰表达式

1735: 逆波兰表达式

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

标准的表达式如“A+B”,在数学上学名叫中缀表达式,原因是运算符号在两个运算对象的中间。相对应的还有前缀表达式,如“+ - A * B C D”,转换成中缀表达式为:“A-B*C+D”;后缀表达式,比如前所述的中缀表达式转换为后缀表达式为:“A B C * - D +”。

    为了纪念波兰数学家鲁卡谢维奇(Jan Lukasiewicz),前缀表达式被称作波兰表达式,后缀表达式称为逆波兰表达式。逆波兰表达式是一种把运算符后置的算术表达式,例如普通的表达式2+3的逆波兰表示法为2 3 +。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,运算符放在两个运算对象之后,所有计算按运算符出现的顺序,严格地由左往右进行。

    例如:5*(27-13)+90对应的逆波兰表达式为5 27 13 - * 90 +,其中用空格作为操作数(运算符)的间隔符。计算过程如下:

    5 27 13 - * 90 + = 5 14 * 90 + = 70 90 + = 160

    本题要求计算逆波兰表达式的值,为简单起见,假设操作数为正整数,运算符只包括“+ - * /”四个。

Input

逆波兰表达式

Output

计算后的结果

Sample Input Copy

5 2 13 + * 59 -

Sample Output Copy

16

Source/Category