题目:窝窝有一个正整数x,窝窝需要把数字x中的数位进行重排得到一个新数(不同于x的数),窝窝想知道这个新数是否可能是原x的倍数。请你来帮他解决这个问题。
输入描述:
输入包括t+1行,第一行包括一个整数t(1 ≤ t ≤ 10),
接下来t行,每行一个整数x(1 ≤ x ≤ 10^6)
输出描述:
对于每个x,如果可能重排之后变为自己的倍数输出"Possible", 否则输出"Impossible".
分析:
# 核心是找到一个数,这个数是原数的倍数,且组成数字与原来的数相同。例如1035和3105。
# 只需要将某个数从2乘到9,每一个结果都判断一下组成数字是否与原来相同。
# (乘到10位数都变了,肯定不满足条件,所以是阈值)
code:
def judge(num):
numStrSet = set(str(num))
for i in range(2, 10):
num_ = num * i
if set(str(num_)) == numStrSet:
return "Possible"
return "Impossible"
if __name__ == "__main__":
num1 = 14
print(judge(num1))
num2 = 1035
print(judge(num2))
程序运行结果:
Impossible
Possible
网友评论