华为机试【15、求解连续数列 】

15、标题:求解连续数列
【求解连续数列】已知连续正整数数列{K}=K1,K2,K3...Ki的各个数相加之和为S,i=N(0<S<100000,0<N<100000),求此数列K。
输入描述:
输入包含两个参数,1)连续正整数数列和S,2)数列里数的个数N。
输出描述:
如果有解输出数列K,如果无解输出-1。
示例1:
输入
525
6
输出
85 86 87 88 89 90

def shulie(s, n):
    arr = [0] * n
    middle = int(s / n + 0.5) if n % 2 == 0 else int(s / n)
    start = middle - math.floor(n / 2)
    for i in range(len(arr)):
        arr[i] = start + i
    if arr[0] <= 0:
        return -1
    return arr


print(shulie(525, 5))
print(shulie(525, 6))
全部评论

相关推荐

头像
点赞 评论 收藏
转发
1 2 评论
分享
牛客网
牛客企业服务