原题链接:蓝桥杯2017年第八届真题-小计算器
解题思路:
看见python没人写、我就写个提供参考。
思路简单就是按照题意来就是、和平时使用的计算器一样。但可能有些细节啥的没注意到,只过了50%的数据。有过了的评论区贴下代码、会回来看的,谢谢了。
参考代码:
n = int(input())
com = "" #用来存运算的字符串
ary = 10 #表示当前进制
dirS = {"ADD":"+","SUB":"-","MUL":"*","DIV":"//","MOD":"%"} #存对应的运算
def arySwap(ary,num): #10进制转换成任何进制
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if num == 0:
return 0
res = ""
while num!=0:
res = s[num%ary]+res
num = num//ary
return res
for _ in range(n):
order = list(input().split())
if len(order)>1:
if order[0] == "NUM":
com += str(int(order[1],base=ary))
if order[0] == "CHANGE":
ary = int(order[1])
else:
if order[0] == "CLEAR":
com = ""
elif order[0] == "EQUAL":
print(arySwap(ary,eval(com)))
com = ""
else:
com += dirS[order[0]]0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复