互不相同且无重复三位数

发布时间 2023-11-01 09:27:43作者: SnowDreamXUE

题目描述

列表中包含四个互不相同的数字(11~99之间),能组成多少个互不相同且无重复数字的三位数?各是多少?

输入格式

输入四行,为四个整数,范围 11~99 之间互不相同。

输出格式

输出 nn 行,每行三个整数,且互不相同。

样例

输入

1
2
3
4

输出

1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2

实现代码

n1 = int(input())
n2 = int(input())
n3 = int(input())
n4 = int(input())
for i in range(1, 5):
    for j in range(1, 5):
        if j == i:
            continue
        for k in range(1,5):
            if k == i or k == j:
                continue
            print(locals()[f"n{i}"], locals()[f"n{j}"], locals()[f"n{k}"])

locals() 函数是 Python 内置函数之一,用于返回当前局部命名空间中的所有变量和它们的值,以字典形式返回。

在 Python 中,每个变量都存储在一个名为“命名空间”的字典中。命名空间是一个映射,将变量名映射到对应的值。局部命名空间是指在函数内部定义的变量的命名空间。

locals() 函数的作用是返回当前局部命名空间的内容。它返回一个字典,其中键是变量名,值是对应的变量值。

使用 locals() 函数可以动态地访问和操作当前局部命名空间中的变量。这对于需要根据变量名进行动态操作的情况非常有用,例如根据循环变量的值来访问不同的变量。

需要注意的是,locals() 函数只返回局部命名空间中的变量,而不包括全局命名空间中的变量。如果需要访问全局命名空间中的变量,可以使用 globals() 函数。

在上面的代码中,我们使用了 locals()[f"n{i}"]来动态地访问变量 n1、n2、n3 和 n4 中的值,其中 f"n{i}" 是一个 f-string,它会根据当前的循环变量 i 的值来生成字符串 "n1"、"n2"、"n3" 或 "n4"。