Python:每日一题 93

2017-11-27 14:48:00
六月
来源:
http://bbs.fishc.com/thread-95974-1-1.html
转贴 634
我们知道计算器显示数字是用的7段数码字,就如下图所示。


把它旋转180°,会变成另外的数字。


当然有些看起来像英文字母LhE,我们把这些看作36进制的数字(正好36进制用0~9和A~Z来表示)。
现在给出一个数字,把它旋转后得到的36进制数再转为10进制的数作为结果。
如123,旋转为16进制E21,10进制为18217
如6574,旋转为16进制hL59,10进制为820557


  1. def fun(num):
  2.     ......
复制代码


我的解法:


  1. def fun(num):
  2.     dict1 = {'0': 0, '1': 1, '2': 2, '3': 14, '4': 17, '5': 5, '6': 9, '7': 21, '8': 8, '9': 6}
  3.     numstr = str(num)[::-1]
  4.     result = 0
  5.     for i in numstr:
  6.         result *= 36
  7.         result += dict1[i]
  8.     return result
复制代码
发表评论
评论通过审核后显示。