【问题描述】从键盘输入两个整数n和m(要求n<m),编程求出由n到m(不包含m)中的整数组合而成的所有不含重复数字的三位数。若n和m的输入不合法或者没有符合条件的三位数则提示输出“illegal input"。 【输入形式】输入一行,内容为两个以空格分隔的整数,分别表示n和m。 【输出形式】以空格分隔输出所有符合条件的三位数。 【样例输入】1 4 【样例输出】123 132 213 231 312 321 【样例输入】2 4 【样例输出】illegal input 【样例输入】0 3 【样例输出】102 120 201 210
时间: 2023-11-13 17:14:18 浏览: 172
好的,可以通过以下代码实现:
```python
n, m = input().split()
n, m = int(n), int(m)
if not (100 <= n < m <= 1000):
print("illegal input")
else:
result = []
for i in range(n, m):
for j in range(i + 1, m):
for k in range(j + 1, m):
if len(set(str(i) + str(j) + str(k))) == 3:
result.append(int(str(i) + str(j) + str(k)))
if result:
print(" ".join(map(str, result)))
else:
print("没有符合条件的三位数")
```
在这个代码中,我们首先通过 `input` 函数从键盘获取了两个整数 `n` 和 `m`,然后利用 `split` 函数将其拆分开来,并转换为整数类型。
接着,我们通过判断 `n` 和 `m` 的值是否符合条件,来判断输入是否合法。如果不合法,则输出提示信息。
如果输入合法,我们就遍历从 `n` 到 `m` 中的所有整数,找出其中所有不含重复数字的三位数,并将其存储在 `result` 列表中。最后,我们判断 `result` 是否为空,如果不为空,则将其转换为字符串,并用空格连接起来输出,否则输出提示信息。
阅读全文