是个传颂厨

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
Py从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,
这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,
同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。
Py非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Py数。
现在给你一个十进制4位数n,你来判断n是不是Py数,若是,则输出Yes,否则输出No。
如n=2992,则输出Yes; n = 9999,则输出No。
以下就用最笨的最简单的方法求解,短除法求出每个进制的每一位数,然后加入到各自的列表中,最后列表求和,判断。
n=2992
t1=t2=t3=n
x10=x12=x16=0
n1=str(n)
n10=[]
n12=[]
n16=[]
for i in range(len(n1)):
    n10.append(t1%10)
    t1/=10
    n12.append(t2%12)
    t2/=12
    n16.append(t3%16)
    t3/=16
for j in range(len(n1)):
    x10+=n10[j]
    x12+=n12[j]
    x16+=n16[j]
if x10==x12==x16:
    print 'Yes'
else: print 'No'

 

posted on 2016-03-22 23:22  是个传颂厨  阅读(385)  评论(0编辑  收藏  举报