三连击 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)