首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
admin
2019-03-29
94
问题
输入一个正数n,输出所有和为n连续正数序列。
例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
选项
答案
void PrintContinuousSequence(int small, int big); ///////////////////////////////////////////////////////////////////////// // Find continuous sequence, whose sum is n ///////////////////////////////////////////////////////////////////////// void FindContinuousSequence(int n) { if(n < 3) return; int small = 1; int big = 2; int middle = (1 + n) / 2; int sum = small + big; while(small < middle) { // we are lucky and find the sequence if(sum == n) PrintContinuousSequence(small, big); // if the current sum is greater than n, // move small forward while(sum > n) { sum -= small; small ++; // we are lucky and find the sequence if(sum == n) PrintContinuousSequence(small, big); } // move big forward big ++; sum += big; } } ///////////////////////////////////////////////////////////////////////// // Print continuous sequence between small and big ///////////////////////////////////////////////////////////////////////// void PrintContinuousSequence(int small, int big) { for(int i = small; i <= big; ++ i) printf("%d ", i); printf("\n"); }
解析
这是网易的一道面试题。
这道题和本面试题系列的第10题有些类似。我们用两个数small和big分别表示序列的最小值和最大值。首先把small初始化为1,big初始化为2。如果从small到big的序列的和大于n的话,我们向右移动small,相当于从序列中去掉较小的数字。如果从small到big的序列的和小于n的话,我们向右移动big,相当于向序列中添加big的下一个数字。一直到small等于(1+n)/2,因为序列至少要有两个数字。
转载请注明原文地址:https://www.kaotiyun.com/show/axmZ777K
0
程序员面试
相关试题推荐
ALetterofApplicationforStudy求学信Writealetterofabout100wordsbasedonthefollowingsituation:Youwanttoapplyfor
"Thecatdoesnotofferservices,"WilliamBurroughswrote."Thecatoffersitself."Butitdoessowithunapologeticcontradict
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4
利用“本地磁盘(C:)属性”对话框为C盘加卷标“系统盘”。
利用D盘窗口,查看WindowsXP已经注册的文件类型,找到"Flash影片"类型。
工作表某两列分别存放北京和沈阳各月的销售情况,请依次按照“北京”及“沈阳”的顺序,对销售情况由低至高进行排序。
()总线是一种新型接口标准,目前广泛地应用于计算机、摄像机、数码相机和手机等多种数码设备上。
【程序说明】使用如下表的数据:SQL语句SELECT部门表.部门号,部门名称,商品号,商品名称,单价;FROM部门表,商品表;WHERE部门表.部门号=商品表.部门号;ORDERBY部门表.部门号DESC,单价
对计算机评价的主要性能指标有时钟频率、①、运算精度、内存容量等。对数据库管理系统评价的主要性能指标有②、数据库所允许的索引数量、最大并发事务处理能力等。②处应填入?
在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景:假设在某一个时刻只有一个活动的事务,为了保证事务
随机试题
1998年9月4日,对于辽宁朝阳市第二中学高(二)8班的男生崔某来说,是一个灾难的日子。当晚6时,学生下课的时候,学生多聚集在楼内走廊,外面正下着大雨,秩序非常混乱。崔某在走廊内鼓掌喧闹,被时任副校长的易淑荣撞见。易拍打崔某后背几下,说:“你起哄什么,幸灾
A、Doubtful.B、Indifferent.C、Reserved.D、Supportive.D从选项预测本题询问的是态度。女士在采访结束时说人们可能对该组织做事的方式持不同看法,但他们做的事情很了不起,希望他们继续并祝他们好运,故选D。长对话
金属一金属难溶盐电极是一种即能指示该金属阳离子又能指示与该金属离子生成难溶盐的阴离子的活度。
麻疹的传播途径是()
使用香豆素类药物时为调整剂量必须测定
化学名为1,2,3一丙三醇三硝酸酯的是
郁金散减诃子,加金银花和连翘的变化,属于()
A、Borntrager’s反应B、Kesting-Craven反应C、Feigl反应D、金属离子反应E、无色亚甲蓝显色试验用于鉴别羟基蒽醌类化合物的是()
下面是关于工作轮换产生的背景:工作轮换是属于工作设计的内容之一,从20世纪初至今,工作设计的理论经历了从工作专业化到工作轮换和工作扩大化,再到工作丰富化以及工作团队等几个重要的发展阶段。19世纪末、20世纪初,以泰罗为首,首先在企业中强调应用了工作专业化,
【2011年】企业下列吸收直接投资的筹资方式中,潜在风险最大的是()。
最新回复
(
0
)