【OD统一考试B卷 | 求解连续数列

题目描述

已知连续正整数数列{K}=K1,K2,K3…Ki的各个数相加之和为S,i=N (0<S<100000, 0<N<100000), 求此数列K。

输入描述

输入包含两个参数,1)连续正整数数列和S,2)数列里数的个数N。

输出描述

如果有解输出数列K,如果无解输出-1。

用例

输入 525 6
输出 85 86 87 88 89 90
说明

题目解析

为了求解连续正整数数列的和,可以使用序列的总和S和长度N计算出中间值,S / N即为中间值。例如,525 / 6 = 87.5,因为序列长度为6,所以87.5实际上是87和88的中间值。

又如,9 / 3 = 3,因为9是2、3、4序列的和,而该序列的长度为奇数,因此3就是该序列的中间值。

有了中间值后,可以根据连续正整数数列的半径计算出序列的两个边界值。如果左边界小于或等于0,则直接返回-1,否则计算得到的边界值即为符合要求的边界。最后,返回在两个边界值之间的数值即可。

alt

C+

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试刷题 文章被收录于专栏

华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论
求解连续数列
点赞
送花
回复
分享
发布于 2023-12-13 20:33 江苏
mk
点赞
送花
回复
分享
发布于 2023-12-13 20:33 江苏
滴滴
校招火热招聘中
官网直投

相关推荐

2 1 评论
分享
牛客网
牛客企业服务