要處理這樣的問題,可以使用一個簡單的算法,逐步讀取輸入的算式,並按照從左至右的順序計算結果。在Python中,你可以使用內建的eval函數來完成這個任務,但是因為eval可以執行任意的Python代碼,所以它不安全。如果要寫一個安全的解析器,就需要檢查每個字符並手動進行計算。
以下是一個Python程序,它可以接收一個只包含正整數和四則運算符的算式,然後計算並返回結果。注意,這個實現假設輸入的算式格式是正確的,並且沒有包含除加、減、乘、除之外的其他字符。
python
def calculate(expression):
index = 0
current_number = 0
operation = '+'
result = 0
stack = []
while index < len(expression):
char = expression[index]
if char.isdigit():
current_number = (current_number * 10) + int(char)
if char in '+-*/' or index == len(expression) - 1:
if operation == '+':
stack.append(current_number)
elif operation == '-':
stack.append(-current_number)
elif operation == '*':
stack.append(stack.pop() * current_number)
elif operation == '/':
# Assuming integer division like in Python 2
stack.append(int(float(stack.pop()) / current_number))
current_number = 0
operation = char
index += 1
result = sum(stack)
return result
# Example usage:
expression = input("Enter an expression: ")
print("The result is:", calculate(expression))
如果你要用Java或C++來實作,過程大致相同,但是需要自己編寫解析輸入和進行計算的代碼,並且需要額外注意除法運算需要使用整數除法的規則。