【发布时间】:2020-10-09 22:57:01
【问题描述】:
我正在编写一个代码来获取两个输入 n 和 k。 n 是我们数字的最大范围。 k 是我们想要用来将 n 个数字放在一起的最小值。 如果看不懂请注意: 代码得到两个输入 n 和 k:
n, k = [int(a) for a in input().split()]
例如 n = 5 和 k = 2。 我想从 1 到 5(n) 对数字进行排序,它们之间的差值大于 2(k) 并且条件不适合我们的 n 打印“不可能”。 例如,如果 n = 2 和 k = 2 ,那么它们的差值无论如何都会小于 2(k)。
这是我写的:
n, k = [int(a) for a in input().split()]
list = []
for i in range(n+1, 1):
if i - (i-2) >= k:
list.append(i)
print(list)
elif n <= k:
print("Impossible")
我想要的是: 例如,如果 n = 5 且 k = 2, 输出应该是:
1 4 2 5 3
对于 n = 2 和 k = 2:
Impossible
但它不起作用我很困惑,有什么功能或任何东西可以帮助我吗?
【问题讨论】:
-
您的循环
for i in range(n+1, 1):永远不会执行。请检查range函数的工作原理。 docs.python.org/3.8/library/stdtypes.html#range
标签: python python-3.x list algorithm for-loop