三连击 P1008 洛谷 python写法

三连击 P1008 洛谷

题意

(1,2, cdots,9)共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。

解题思路

这里我使用了最暴力的方法,结合自己刚学的python来编写的代码。

使用三个for循环来求出第一个数,其他两个数就直接乘上相应的倍数就可以了,然后利用取余和列表中查找操作来进行判断,详情看代码,这也是我第一次用python来解决问题

代码实现(python)

def judge (x, y, z):
    num=[1, 2, 3, 4, 5, 6, 7, 8, 9]
    while x>0:
        if x%10 in num:
            tmp=num.index(x%10)
            del num[tmp]
        else :
            return False
        x//=10
        
        if y%10 in num:
            tmp=num.index(y%10)
            del num[tmp]
        else :
            return False
        y//=10

        if z%10 in num:
            tmp=num.index(z%10)
            del num[tmp]
        else :
            return False
        z//=10
    return True

for i in range(1 , 10):
    for j in range(1 , 10):
        for k in range(1 , 10):
            a=i*100+j*10+k
            b=a*2
            c=a*3
            if judge(a, b, c) == True:
                print(a, b, c)
欢迎评论交流!
原文地址:https://www.cnblogs.com/alking1001/p/11416655.html