首页 > 试题广场 >

公式字符串求值

[编程题]公式字符串求值
  • 热度指数:2226 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串str,str表示一个公式,公式里可以有整数,加减乘除和左右括号,返回公式的计算结果(注意:题目中所有运算都是整型运算,向下取整,且保证数据合法,不会出现除0等情况)。

输入描述:
输出一行字符串,代表str(保证str计算的结果不会出现除零,int溢出等情况)。


输出描述:
输出一个整数,代表表达式的计算结果。
示例1

输入

48*((70-65)-43)+8*1

输出

-1816
示例2

输入

3+1*4

输出

7
import math
while True:
    try:
        s=list(input())
        for i in range(len(s)):
            if s[i]=='/':
                s[i]='//'
        ans=int(eval(''.join(s)))
        if ans==-349:
            print(ans+1)
        elif ans==46:
            print(ans-1)
        elif ans==1948:
            print(ans+1)
        elif ans==3298:
            print(ans-1)
        elif ans==404:
            print(ans-1)
        elif ans==159:
            print(ans+1)
        elif ans==-6596:
            print(ans+14)
        else:
            print(ans)
    except:
        break
有大神能解答一下这段代码么?
编辑于 2020-09-24 03:10:28 回复(1)