7-1简单计算器pta浙大
时间: 2025-06-30 20:02:56 浏览: 4
### PTA 浙大 7-1 简单计算器 题解
#### 解析与实现思路
简单计算器的核心在于模拟基本的四则运算逻辑,按照题目描述的要求,需支持加法、减法、乘法和除法操作。由于题目规定运算符优先级相同并按从左至右顺序执行,因此无需考虑复杂的括号处理或不同优先级的情况。
以下是具体实现方法:
1. **输入解析**
用户输入表达式字符串后,将其分割成操作数和运算符两部分。可以通过遍历字符逐一提取数字和符号来完成这一过程[^1]。
2. **逐步计算**
使用两个栈分别存储操作数和运算符,或者直接通过一次扫描的方式依次计算结果。对于每一对连续的操作数和运算符,立即进行相应的运算并将中间结果存入下一轮计算中。
3. **边界条件处理**
特别注意以下情况:
- 如果遇到非法字符,则应返回错误提示。
- 对于除法操作,当分母为零时需要抛出异常或特殊标记。
下面是基于 Python 的一种可能实现方式:
```python
def simple_calculator(expression):
try:
tokens = []
i = 0
while i < len(expression):
if expression[i].isdigit():
num = ""
while i < len(expression) and expression[i].isdigit():
num += expression[i]
i += 1
tokens.append(int(num))
elif expression[i] in "+-*/":
tokens.append(expression[i])
i += 1
else:
raise ValueError("Invalid character encountered.")
result = tokens[0]
op_index = 1
while op_index < len(tokens):
operator = tokens[op_index]
operand = tokens[op_index + 1]
if operator == '+':
result += operand
elif operator == '-':
result -= operand
elif operator == '*':
result *= operand
elif operator == '/':
if operand == 0:
return "Error: Division by zero."
result //= operand
op_index += 2
return str(result)
except Exception as e:
return f"Error: {e}"
# 示例测试
expression = input().strip()
print(simple_calculator(expression))
```
此代码实现了简单的四则运算功能,并遵循了题目中的规则。它能够正确处理合法的整数表达式以及一些常见的错误情形,如除以零等问题。
---
#### 关键点说明
- 表达式的合法性验证非常重要,在实际应用中可以进一步增强健壮性检查机制。
- 整数范围内的精确度控制也需要注意,尤其是涉及较大数值时可能会超出标准数据类型的表示能力。
---
阅读全文
相关推荐












