为什么输出的答案不对

 

a, b = eval(input())  # a是4个数字之和,i是b的倍数
ls = []
for i in range(10000, 100000):
    s = 0
    for item in str(i):
        s += int(item)
    if len(set(str(i)))==4 and i%b==0 and s==a:  # 包含4个不同的数字,i是b的倍数,s==a,a最小取0+1+2+3=6
        ls.append(i)
x = len(ls)
print(x,ls)

看看是不是你先要的,就是觉得b%i==0,那你的b必须是10000~100000的倍数,我把它改成i%b==0了。

输入: 7,7

输出:

15 [10024, 10213, 10402, 11032, 12040, 12103, 20041, 20104, 21301, 24010, 30121, 32011, 40012, 40201, 41020]

你没有预期的答案的话,很难判断你的代码没有实现你想要的结果的啊

将最后两行顶格写,x=len(ls) 和print(x,ls)要移出for循环,与for那行代码顶格对齐,这样输出的结果才是所需要的,即获得的列表元素个数和列表。

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632