繁体   English   中英

不重复的不同整数的组合

[英]Combinations of distinct integers without repetition

将所有可能的整数组合打印为嵌套列表的三个不同整数的 python 程序是什么? 该组合不应包含任何重复输入的整数,并且输入整数的总和和结果组合中整数的总和不应是 5 的倍数,均值排除所有其他总和为 5 的倍数的组合。

x=[int(input()),int(input()),int(input())]
s=[[i,j,k] for i in x for j in x for k in x if sum ([i+j+k])]
print(s)

我只是将a,b,c作为输入并制作一个存储我的数据的临时列表,并为嵌套列表制作字典并将其作为整数作为键,这样我就可以递增它。 附加条件数据并根据您的条件放置不等于 5 的过滤器。

a=int(input("Enter first number:"))
b=int(input("Enter second number:"))
c=int(input("Enter third number:"))

col_index = 0
tmp_lst =[]
d={0:[]}

d[0].append(a)
d[0].append(b)
d[0].append(c)

for i in range(0,3):
    for j in range(0,3):
        for k in range(0,3):
            if(i!=j&j!=k&k!=i):
                col_index += 1
                tmp_lst.append(i)
                tmp_lst.append(j)
                tmp_lst.append(k)
                
                if sum(tmp_lst) != 5:
                    d[col_index] = tmp_lst
                else:
                    continue
                print(d)

您可以使用这个简单的方法:

from itertools import permutations

a=int(input("Enter first number:"))
b=int(input("Enter second number:"))
c=int(input("Enter third number:"))

comb = set(permutations([a, b, c], 3))

col_index = 0
tmp_lst =[]


for i in comb:
    if sum(i) %5 != 0:
        tmp_lst.append(list(i))
        print(i)
        print(tmp_lst)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM