C1091 - 后缀表达式求值

题目描述

给定一个后缀表达式(也称为逆波兰表达式),请你编写个程序计算出该后缀表达式的运算结果

输入格式

1行,一个后缀表达式的字符串,其中每个数字、运算符号之间都使用一个空格分隔

表达式中的运算符有:+、-、*、/ 这个4种

输出格式

后缀表达式的运算结果,最终保留2位小数,结果不可四舍五入

注意最后输出要求在小数点后保留两位数字,输出结果不可四舍五入,也就是如果最终计算结果为3.146,则正确的输出结果为3.14

输入输出样例

输入样例 输出样例
1 2 3 * + 7.00
1 2 / 3 + 3.50
2 3 / 10 + 10.66
-1 -2 -3 * + 5.00

注意表达式做除法运算时需要保留小数,比如 1 / 2,应该是0.5,不是0

表达式运算中间过程不需要进行保留2位小数操作,比如:

1 2 / 3 + 对应的中缀表达式是:

1 / 2 + 3,在做1 / 2时不需要使用保留2位小数操作(建议使用double类型存储),在整个表达式计算结果出来后再进行保留2位小数(不需要四舍五入)

数据范围与提示

对于100%的数据满足:

表达式的字符串长度 <= 100

后缀表达式中每个数字均为合法整数格式,都在int型取值范围,最终运算结果保证在double型取值范围内

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1091.in,输出文件名为:C1091.out