XTU - 1095 连续自然数之和

来源:互联网 发布:mysql workbench使用 编辑:程序博客网 时间:2024/05/16 08:08

又是湘潭大学的,这里贴上来的几题都是昨天湘潭大学新生赛得题目,昨天做完后发现自己智商有问题。于是今天再检验一下,发现

还是没问题的。不过中午没睡觉发现影响还是挺大的。

 

根据公式:(a1+an)*n/2 = x 所以我们很容易会枚举a1,然后往后找,如果发现比x还要大的话就枚举a1的另一个位置。

这样复杂度还是O(N^2)的。虽然到后面a1和an之间的间隔会变小,但是这题出得比较严格。我用下面O(sqrt(n))复杂度的算法,还是用了600多毫秒。

 

现在说说下面这个代码:a1n+n(n-1)d/2 = x。注意到n^2没,所以我们枚举n就可以啦。