首页 > 试题广场 >

奇怪的表达式求值

[编程题]奇怪的表达式求值
  • 热度指数:2588 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
常规的表达式求值,我们都会根据计算的优先级来计算。比如*/的优先级就高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 *)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少

输入描述:
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示。


输出描述:
输出一个数,即表达式的值
示例1

输入

3+5*7

输出

56
op=list(input())
numbers=list("0123456789")
#转换成int
for i in range(len(op)):
    if op[i] in numbers:
        op[i]=int(op[i])

ans=op[0]
#从第一个开始累计
for i in range(len(op)):
    if op[i] == "+":
        ans+=op[i+1]
    if op[i] == "-":
        ans-=op[i+1]
    if op[i] == "*":
        ans*=op[i+1]

print(ans)


编辑于 2017-08-31 17:13:09 回复(0)