测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)。

上一题 下一题