A25210. 计算表达式 S(加法优先级高于乘法)。输入描述:字符串 S(如 "13+5x11")。输出描述:计算结果。样例输入:13+5x11样例输出:198
填空题
容易
知识点
题目描述
计算表达式 S(加法优先级高于乘法)。
输入描述:
字符串 S(如 "13+5x11")。
输出描述:
计算结果。
样例输入:
13+5x11样例输出:
198参考答案
s = input().strip()
if '+' in s:
parts = s.split('x')
if len(parts) == 2:
a, b = parts[0], parts[1]
if '+' in a:
num1, num2 = map(int, a.split('+'))
result = (num1 + num2) * int(b)
else:
num1, num2 = map(int, b.split('+'))
result = int(a) * (num1 + num2)
else:
# 处理更复杂情况(如多个加法)
pass
print(result)
else:
# 无加法时直接计算乘法
print(eval(s.replace('x', '*')))答案解析
分割表达式: 以 x 分割表达式,检查加法部分。
优先计算加法:
若加法在左侧(如 13+5x11),先算 13+5,再乘以 11。
若加法在右侧(如 13x5+11),先算 5+11,再乘以 13。
直接乘法: 若无加法,直接计算乘法(替换 x 为 * 后用 eval)。
上一题
下一题