给定一个整数num和一个数字k,求解一个连续递增数列,使得长度为k的数列之和为num,存在该数列时输出数列,不存在时输出-1
例如:
输入:
525 6
输出:
85 86 87 88 89 90
输入:
6 3
输出:
-1
分析: 因为是连续数值,所以对应的连续数值肯定在【(525//6)-6, (525//6)+6】
s = "3 3"
Flag = 0
num, k = map(int, s.split())
starts = (num//k)-k
ends = (num//k)+k
for x in range(starts if starts > 0 else 0, ends):
if sum(range(x, x+k)) == num:
print(" ".join(list(map(str, range(x, x+k)))))
Flag = 1
break
if Flag == 0:
print(-1)