#4520. 波兰表达式
波兰表达式
1681 波兰表达式
题目描述
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式 2 + 3 的波兰表示法为 + 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如 (2 + 3) * 4 的波兰表示法为 * + 2 3 4。本题求解波兰表达式的值,其中运算符包括 + - * / 四个。
输入格式
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出格式
输出为一行,表达式的值。可直接用 printf("%f\n", v) 输出表达式的值 v。
样例
样例输入 1
* + 11.0 12.0 + 24.0 35.0
样例输出 1
1357.000000
数据范围与提示
数字 + 运算符 ≤ 100
可使用 atof(str) 把字符串转换为一个 double 类型的浮点数。atof 定义在 cmath 中。
知识点与难度
- 知识点标签:递归、栈基础、第二讲(Level3)、第二十一讲(Level2)
- GESP 等级:6 级
- 难度:Mid-
测试点分布
| 子任务 | 测试点编号 | 分值 | 说明 |
|---|---|---|---|
| 0 | 1-2 | 10 | 样例测试 |
| 1 | 3-8 | 20 | 小规模数据 |
| 2 | 9-11 | 15 | Hack 数据 |
| 3 | 12-20 | 30 | 中大规模数据 |
| 4 | 21-25 | 25 | 随机回归数据 |