SP8478 POCALC1 - Ancient Pocket Calculator
题目描述
Adam 对袖珍计算器情有独钟,尤其是早期的那些。由于他的钟爱之物已有 40 年的历史,他担心可能用不了太久。因此,他灵机一动,决定开发一个与他的计算器表现完全一致的模拟器。这个模拟器需要读取一串计算器按键操作,执行相应计算,并输出结果。对于 Adam 来说,只有基本的算术运算足够了,因此以下按键即可满足需求:0 到 9 的数字键、小数点、运算符 +、-、x 和 :(代表除法),等号用于计算出并显示结果,\[C\] 键用于重置计算器并清空显示,即显示内容被设为 "0."。计算按操作的出现顺序执行,不考虑运算符优先级。

此计算器行为有些特立独行:
- 每种按键序列都是合法的,无论施按顺序如何。若连续按下多个运算符(包括 \[=\]),仅处理最后一个,其余则被忽略。
- 单个数字输入若超出 8 位,仅处理前 8 位,随后多余数字将被忽略。当显示当前值为 0,再按 0 键将无效,与重复按相同运算符的效果相同。
- 若输入浮点数时,小数点前的零可省略,但显示时仍需显示。若在已输入小数的数字内再次按小数点,或以小数点结束数字输入,皆不会有影响。
输入格式
第一行是一个正整数 $t$(满足 $1 \le t < 1000$),表示测试用例的数量。接下来的 $t$ 行中,每行描述一串计算器按键操作,每个键被方括号包围,各按键间以空格分隔。按键序列长度不足 500,以 \[=\] 结束。
输出格式
对于每组按键序列,输出计算器处理完成后应显示的结果。显示器最多可显示 8 位数字,左侧可有一个负号,且总有一个小数点,即便结果是整数也是如此。若小数部分超过 8 位需四舍五入,显示从右向左排列,输出亦需靠右对齐。
- 若数值四舍五入后绝对值需超 8 位或大于 $10^{-100}$ 而又不显示零,仅高于 $10^{100}$ 的状态和除以零时会显示 "Error."。一旦出错,除非按下 \[C\],否则忽略后续输入。
科学计数法用于表示大于 8 位或需用科学计数法显示的数。用一个小数部分乘以 10 的冪数表示,十进制部分有一位非零数字在小数点前,有时在最左侧有个负号,四舍五入后得至多 4 位小数。指数为负时接 "-",否则接空格,再接两位指数,前导零如需出现。
上述每种操作、显示格式以及结果由例子加以展示。
说明/提示
- $1 \le t < 1000$
- 每个按键序列少于 500 个按键
- 每条序列都以 \[=\] 结束
**本翻译由 AI 自动生成**