首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
114
问题
输入一个正数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://kaotiyun.com/show/axmZ777K
0
程序员面试
相关试题推荐
YourfriendDavidjustsentyouabookthatyouexpectedasabirthdaypresent.Sendane-mailtohimtoexpressyourappreciati
Inthissection,youareaskedtowriteanessaybasedonthefollowinginformation.Makecommentsandexpressyourownopinion.
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Iamastudent.”,则输出“student.aamI”。
DataReader和DataSet的异同
什么是ASP.net中的用户控件
从当前界面开始,在【资源管理器】窗口中,使用右键方式设置本地驱动器C为共享方式。
将金山网镖应用程序规则列表中的应用程序QQ2009删除。
在字体对话框中不能设置()A.字体B.字号C.字符间距D.文字样式
在Excel97的某单元格内输入了一个公式后,单元格的显示为“#######”,这是由于()。A.所得结果没有意义B.所得结果长度超过了列宽C.公式输入有误D.所得结果被隐藏
请在幻灯片放映过程中,添加演讲者自己使用的备注信息。
随机试题
简述领导者影响力的内容,分析领导者的权威是怎样形成的。
A、Shortofbreath.B、Dizzy.C、Knockingintothefridge.D、Feelingsick.C根据女士的回答可知,她的症状有vomit(对应D选项,恶心呕吐),giddiness(dizzy,眩晕),眩
A.双氯芬酸片B.硝普钠注射液C.降钙素鼻喷雾剂D.阿司匹林片E.头孢呋辛酯片需密闭、遮光,在阴凉干燥处保存的药品是()。
劳动强度指数是区分体力劳动强度等级的指标,已知劳动强度指数为15-20之间的劳动强度为:
屋面建筑工程的保修期应从()起计算。
某路基换填施工,换填深度为2m,地下水位为地面以下1.8~2.0m,含水层以下为非透水层。为降低和拦截地下水,在换填边界处宜设置().
在物理学上,把人们引向一个新的王国——微观世界的是()。①居里夫妇②爱因斯坦③吉尔伯特④伦琴
在“非典”期间,某地区共有7名参与治疗“非典”的医务人员死亡,同时也有10名未参与“非典”治疗工作的医务人员死亡。这说明参与“非典”治疗并不比日常医务工作危险。以下哪项相关断定如果为真,最能削弱上述结论?
Aprettypotplantmightmakeanunemotionalworkspacefeelmorepersonal.Butnewresearchhasrevealedthatofficeplantsdo
在下列几种排序方法中,要求内存量最大的是
最新回复
(
0
)