美文网首页
【python网易】数位重排?

【python网易】数位重排?

作者: 阿牛02 | 来源:发表于2019-08-19 17:05 被阅读0次

题目:窝窝有一个正整数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

相关文章

网友评论

      本文标题:【python网易】数位重排?

      本文链接:https://www.haomeiwen.com/subject/yelesctx.html