博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
100-51
阅读量:6038 次
发布时间:2019-06-20

本文共 696 字,大约阅读时间需要 2 分钟。

hot3.png

51.和为n连续正数序列(数组)。

题目:输入一个正数n,输出所有和为n连续正数序列。

例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。

分析:这是网易的一道面试题。

思路:这道题初看起来就是一个数学题。简单的方法就是采用遍历的方法,时间复杂度为O(n^2)。不过很显然,得到的结果数组为一个等差数列,因此等差数列的和可以用公式的来计算。这样就得到了。一个纯数学的问题。另外结果数列还是有些特点可循的。比如:数列的第一个元素肯定是<=输入的n的一半的,也就是说ai<=n/2。还有就是数组中元素的个数肯定是大于0的整数。这样就能将时间复杂度降到O(n)。

贴上代码:http://blog.csdn.net/zcsylj/article/details/7857380

#include 
#include
int main(){ int n; int i=0; int j=0; int num=0; double tmp=0; scanf("%d",&n); for(i=1;i<=n/2;i++) { num=(2*i-1)*(2*i-1)+8*n; tmp=sqrt(1.0*num); if(tmp!=(int)tmp) continue; num=(1-2*i+(int)tmp); if(num%2==0&&num>0) { for(j=0;j

转载于:https://my.oschina.net/dapengking/blog/93400

你可能感兴趣的文章
数字通信原理笔记(一)---概述
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>
Dubbo OPS工具——dubbo-admin & dubbo-monitor
查看>>
如何将OpenCV中的Mat类绑定为OpenGL中的纹理
查看>>
CutyCapt
查看>>
Dungeon Master ZOJ 1940【优先队列+广搜】
查看>>
解决https://localhost:1158/em 页面无法打开的问题
查看>>
[Cocoa]深入浅出Cocoa之Core Data(4)- 使用绑定
查看>>
原理:什么是Quadtrees?(转)
查看>>
记:返回方法参数的值(或多个值),
查看>>
Effective C++ 的52个条款列表
查看>>
c#读取ini文件
查看>>
一阶微分方程的求解
查看>>
其它 Helper
查看>>
监控利器Prometheus初探
查看>>
foreach遍历打印表格
查看>>
Oracle笔记(中) 多表查询
查看>>
Delphi 中的 XMLDocument 类详解(5) - 获取元素内容
查看>>
差异分析定位Ring 3保护模块
查看>>
2013年7月12日“修复 Migration 测试发现的 Bug”
查看>>