Python 程序查找 i+j+k 不等于 n 的三元组列表

pythonserver side programmingprogramming更新于 2025/12/7 17:48:17

假设我们有三个数字 i、j 和 k 以及另一个数字 n。我们必须找到 i+j+k 不等于 n 的所有三元组 (i, j, k) 的列表。我们必须使用列表理解策略来解决这个问题。

因此,如果输入为 i = 1、j = 1、z = 2 和 n = 3,则输出将是 [[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]

要解决这个问题,我们将遵循以下步骤 −

  • arr = 一个三元组数组 [x, y, z],其中 x 的范围从 0 到 i,y 的范围从 0 到 j,z 的范围从 0 到 k,其中 x+y+z 不等于

示例

让我们看看下面的实现以便更好地理解 −

def solve(i, j, k, n):
    arr = [[x, y, z] for x in range(i+1) for y in range(j+1) for z in range(k+1) if x+y+z != n]
    return arr

i = 1
j = 1
k = 2
n = 3
print(solve(i, j, k, n))

输入

1, 1, 2, 3

输出

[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]

相关文章


有用资源