gpt4 book ai didi

python - 线路安排问题。 (有人可以提出一个更省时的解决方案吗?)

转载 作者:行者123 更新时间:2023-12-04 00:15:56 26 4
gpt4 key购买 nike

从 1 开始的正整数按行排列。第 i 行有 i 个数字。例如,这些将是前四行:

1 | 2, 3 | 4, 5, 6 |7, 8, 9, 10

编写一个函数,接受参数“L”并返回此排列的第 L 行。


这是我的方法:

def find_line(l):
array = []
x = 1
for i in range(1, l + 1):
while len(array) != I:
array.append(x)
x += 1
if i == l:
return array
else:
array = []

最佳答案

您不需要循环。您可以通过以下方式的系列之和直接计算组中的第一个数字:

start =  1 + (n * (n + 1)) // 2

如果您希望 n 从 1 而不是 0 开始,则需要从 n 中减去。

def group(n):
n -= 1
start = 1 + (n * (n + 1)) // 2
return list(range(start, start + n +1))

# try it on first 10 numbers:
for i in range(1, 10):
print(group(i))

这将打印:

[1]
[2, 3]
[4, 5, 6]
[7, 8, 9, 10]
[11, 12, 13, 14, 15]
[16, 17, 18, 19, 20, 21]
[22, 23, 24, 25, 26, 27, 28]
[29, 30, 31, 32, 33, 34, 35, 36]
[37, 38, 39, 40, 41, 42, 43, 44, 45]

如果需要字符串,可以使用 join 或类似方法。

关于python - 线路安排问题。 (有人可以提出一个更省时的解决方案吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63755589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com