📅  最后修改于: 2023-12-03 15:28:43.820000             🧑  作者: Mango
下面给出了一个函数 foo()
的实现,请选择可能的输出结果。
def foo(n):
if n < 1:
return
for i in range(1, n):
for j in range(i, n):
for k in range(j, n):
print(i, j, k)
n = 3
foo(n)
(A) 无输出 (B) 1 1 1,1 1 2,1 1 3,1 2 2,1 2 3,1 3 3,2 2 2,2 2 3,2 3 3 (C) 1 1 1,1 1 2,1 1 3,1 2 2,1 2 3,1 3 3,2 2 2,2 2 3,2 3 3,3 3 3 (D) 1 1 1,1 1 2,1 1 3,1 2 2,1 2 3,1 3 3,2 2 2,2 2 3,2 3 3,3 3 3,3 3 2,3 2 2,3 2 3,3 1 1,3 1 2,3 1 3
该函数是一个三重循环,但是因为第一层循环是 for i in range(1, n)
,所以只有在 n >= 2
的情况下才会有输出。
内层循环中,range(j, n)
和 range(k, n)
中的 n
都相同,所以输出的结果中,第三个数都是按顺序不断增加的。
因此,此题目为一个三层循环,由于 range
函数左闭右开原则,所以如代码实现中,i 的取值不会包含最后一个点。因此,上面程序的输出结果应为:
1 1 2
1 1 3
1 2 2
1 2 3
1 3 3
2 2 3
2 3 3
因此,选项 (B) 是正确的。
选项 (B)
无