美文网首页
【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