P1618 三连击(升级版)

P1618 三连击(升级版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

a,b,c=map(int,input().split())
cnt=0
def go(x,arr): #创建列表来判断三个三位数上数位是否有重复的出现
    arr[x%10]=True  #个位
    arr[x//10%10]=True #十位
    arr[x//100]=True #百位
def check(x,y,z): 
    arr=[0 for _ in range(10)] #每次判断完一行时重置数组
    if y>999 or z>999: #大于999的数不可能出现
        return False
    go(x,arr)
    go(y,arr)
    go(z,arr)
    for i in range(1,10): #从1开始
        if arr[i]==0: #只要出现未使用的数字就说明1~9这9个数出现重复情况
            return False
    return True #均满足条件后说明这行的三个数符号条件
for x in range(123,987+1): #从123开始,到987结束
    if a==0 or b==0 or c==0:
        break
    if x*b%a!=0 or x*c%a!=0: #x*b%a和x*c%a要是出现余数则不用继续判断了,直接往后判断
        continue
    y=x*b//a
    z=x*c//a
    if check(x,y,z):
        print(x,y,z,end=" ")
        print("")
        cnt+=1
if cnt==0:
    print('No!!!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值