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'