描述: |
逆波兰记法中,操作符置于操作数的后面。例如表达“三加四”时,写作“3 4 +”,而不是“3 + 4”。如果有多个操作符,操作符置于第二个操作数的后面,所以常规中缀记法的“3 - 4 + 5”在逆波 兰记法中写作3 4 - 5 +”:先3减去4,再加上5。使用逆波兰记法的一个好处是不需要使用括号。 请编写Java函数计算逆波兰表达式的结果。 输入一个逆波兰表达式, 1、操作数类型为正的double数,符合java的double常量规范,不同的操作数以空格或者运算符分开; 2、支持四则运算,即运算符包括+,-,*,/。 输出为计算结果 如输入为 “1 2 + 3 *”,则输出为“9.0” 考试要点: 1.能正确处理简单的表达式(50分),如计算 1.0 2 + 的结果为 3.0 2.能正确处理不同的操作符(30分),如计算 1 2 + 3 * 的结果为 9.0 RPNSyntaxErrorException 异常 4.能正确识别输入的逆波兰表达式中的除零错误(10分),如输入为 1 2 2 -/ 则 抛出 DevideByZeroException 异常 |
知识点: | |
题目来源: | 内部整理 |
练习阶段: | 高级 |
运行时间限制: | 10Sec |
内存限制: | 128MByte |
输入: |
输入算式,数字字符之间以空格隔开 |
输出: |
输出计算结果 |
样例输入: |
1 2 + 3 * |
样例输出: |
9.0 |
答案提示: |
【华为OJ】逆波兰
时间: 2024-11-23 16:58:17