首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
63
问题
输入一个正数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://jikaoti.com/ti/Uag7FFFM
0
程序员面试
相关试题推荐
WhenIseeclients,thisisthequestionthatI’maskedthemost.Ifyou’reinapublicplace,lookaround.【F1】Nearlyeveryone
KimiyukiSudashouldbeaperfectcustomerforJapan’scar-makers.He’sayoung,successfulexecutiveatanInternet-servicesco
ReinventingtheTableAnearthscientisthasrejiggedtheperiodictabletomakechemistrysimplertoteachtostudents.
C#中的接口和类有什么异同。
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”Theyarestudents.”和”aeiou”,则删除之后的第一个字符串变成”Thyrstdnts.”。
将C盘“职称考试”文件夹中的“试题.XLS”的属性设置为只读。
Dreamweaver的编辑(Edit)菜单命令中,SelectAll表示______。A.将剪贴板拷贝至当前光标位置B.从文档中删除当前选区C.选取当前文档中所有元素D.使用HTML代码将当前选区拷贝到剪贴板
软件设计中,有利于提高模块独立性的一个准则是______。
准确和无偏颇的数据是量化风险分析的基本要求。可以通过(55)来检查人们对项目风险的理解程度。
用200字简要阐述数据仓库的数据特点中的面向主题和强调时间序列具体是指什么。试用200字比较轻量级数据仓库和企业级数据仓库的异同。
随机试题
肾综合征出血热少尿期。肺感染治疗的首选药物是
新生儿保健的重点时间是
急救时,医师一般给予患者静脉注射50%葡萄糖注射液50ml。如此处理能为患者提供的能量(kcal)是
A.30%B.20%C.6%D.8%二级综合医院药剂科药学人员中具有副高级以上药学专业技术职务任职资格的人员,不得低于()。
《会计从业资格管理办法》对因有( )被追究刑事责任人员规定终身不得申请会计从业资格。
现代国际分工的模式中( )。
下列哪一项不是毛泽东在抗日战争期间的著作?()
Inthesamewaythatachildmustbeabletomovehisarmsandlegsbeforehecanlearntowalk,thechildmustphysiologically
求
识别风险后,对负面威胁类风险的处置应对策略不包含()。
最新回复
(
0
)