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。
from __future__ import print_function # bin()、oct()、int()、hex() # n = 2992 def twelve(n): list = '' while n >= 12: temp = n % 12 if temp == 10: list += 'a' elif temp == 11: list += 'b' else: list += str(temp) n /= 12 list += str(n) return ''.join(reversed(list)) def pick_out(n): ret = '' n_10 = str(n) n_12 = str(twelve(n)) n_16 = str(hex(n))[2:] # print(n_12) sum_10 = 0 sum_12 = 0 sum_16 = 0 for index in n_10: sum_10 += int(index) for index in n_16: sum_16 += int(index,16) for index in n_12: sum_12 += int(index,12) if sum_12 == sum_16 and sum_16 == sum_10: ret = 'Yes' else: ret = 'No' return ret print(pick_out(n),end='')
Py数
描述: