-1

编写一个以数字 n 作为参数的函数三元组,并返回三元组的列表,使得三元组的前两个元素之和等于使用小于 n 的数字的第三个元素。请注意 (a, b, c) 和 (b, a, c) 代表相同的三元组。

三胞胎(5)

[(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)]

4

2 回答 2

0

你能试试这个吗?

def write_triplets(n):
    to_return = []

    if n >= 2:
        for i in range(2, n):
            for j in range(1, i/2+1):
                triplet = (j, i-j, i)
                to_return.append(triplet)

    return to_return


write_triplets(5) 

输出:

# Result: [(1, 1, 2), (1, 2, 3), (1, 3, 4), (2, 2, 4)] # 
于 2019-05-10T14:29:15.883 回答
0

您可以通过列表理解来做到这一点:

def triplets(n): 
    return [ (a,c-a,c) for c in range(2,n) for a in range(1,c//2+1) ]
于 2019-05-10T18:41:32.880 回答