您必须编写一个程序,该程序对将输入高级计算器的字符串进行求值。
程序必须使用stdin接受输入并输出正确答案。对于不具有接受stdin函数的语言,您可以使用这些函数readLine
并print
处理这些任务。
要求:
- 不使用任何“评估”功能
- 可以处理浮点数和负数
- 至少支持+,-,*,/和^运算符
- 支持括号和括号以覆盖正常顺序
- 可以处理在运算符和数字之间包含一个或多个空格的输入
- 使用标准操作顺序评估输入
测试用例
输入值
10 - 3 + 2
输出量
9
输入值
8 + 6 / 3 - 7 + -5 / 2.5
输出量
1
输入值
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
输出量
41
输出末尾可以有尾随
—
凯文·布朗
.0
。我不太确定精度,但是更好。
堆栈溢出版本是数学表达式评估器(完整的PEMDAS)。尽管该答案的许多答案都在计数行(?!?)。在c中仍然有几个紧凑的答案。
—
dmckee 2011年
PN / RPN计算器有奖金吗?
—
Mateen Ulhaq 2011年
.0
是整数,可以在末尾加上尾号吗?另外:计算器的精度必须是多少(关于浮点精度等)?