第三届中国计量大学ACM程序设计竞赛-python

Arithmetic Problems

https://ac.nowcoder.com/acm/contest/5795/A

Arithmetic Problems

题意

图片说明

给你一个式子,减号的意思是乘号,除号的意思是加号,加号的意思是除号,乘号的意思是减号。

要求计算这个式子。

思路

使用eval函数直接计算。

但是在此之前,要完成符号的转换:要注意,不能直接把减号变成乘号,否则会发生替换的覆盖,应该先转换成中间变量,再逐一转换成目标符号。

另外由于表达式过长,必须提高默认的递归栈深

solution

import sys
sys.setrecursionlimit(600000)
s=input()
s=s.replace(' ','')
s=s.replace('-','mul')
s=s.replace('/','add')
s=s.replace('+','div')
s=s.replace('*','sub')
s=s.replace('mul','*')
s=s.replace('add','+')
s=s.replace('div','/')
s=s.replace('sub','-')
try:
    ans=float(eval(s))
    print('%.2f'%ans)
except:   
    print('Cannot be divided by 0')
算法竞赛之路 文章被收录于专栏

整理、记录算法竞赛的好题

全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务