首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
70
问题
输入一个正数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
程序员面试
相关试题推荐
Notuntilthe1980’s______inBeijingstarttofindwaystopreservehistoricbuildingsfromdestruction.
WhenIseeclients,thisisthequestionthatI’maskedthemost.Ifyou’reinapublicplace,lookaround.【F1】Nearlyeveryone
KimiyukiSudashouldbeaperfectcustomerforJapan’scar-makers.He’sayoung,successfulexecutiveatanInternet-servicesco
Individualsandbusinesseshavelegalprotectionforintellectualpropertytheycreateandown.Intellectualproper【C1】______fro
LowCarbonLifestyle低碳的生活方式Writeanessayof160-200wordsbasedonthedrawing.Inyouressay,youshould1)describethedraw
.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
编码实现字符串转整型的函数(实现函数atoi的功能),据说是神州数码笔试题。如将字符串”+123”-->123,”-0123”-->-123,“123CS45”-->123,“123.45CS”-->123,“CS123.45”-->0
输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
办公自动化是目前广泛开展的一项计算机应用,按类分,它应属于下列哪一类()A.科学计算B.计算机辅助设计C.实时控制D.数据处理
Dreamweaver的编辑(Edit)菜单命令中,SelectAll表示______。A.将剪贴板拷贝至当前光标位置B.从文档中删除当前选区C.选取当前文档中所有元素D.使用HTML代码将当前选区拷贝到剪贴板
随机试题
A注册会计师负责对X公司2011年度财务报表实施审计。根据对重大错报风险的评估结果,X公司应收账款项目的存在认定具有较高的重大错报风险,计价和分摊认定存在特别风险。为应对评估的重大错报风险,A注册会计师在确定销售与收款循环进一步审计程序的总体方案时,选择了
关于确诊SLE和判断其活动性参考价值最大的抗体是()(2002年)
下列哪类案件不能由人民检察院直接立案侦查?()
为提高绩效管理质量和水平,应在绩效管理方式方法上,提高考评者的()。
为适应科学知识的加速增长和人的持续发展要求而逐渐形成的教育思想和教育制度称()
[2007年GRK真题](1)一(2)基于以下题干:陈先生:有的学者认为,蜜蜂飞舞时发出的嗡嗡声是一种交流方式,例如蜜蜂在采花粉时发出的嗡嗡声,是在给同一蜂房的伙伴传递它们正在采花粉位置的信息。但事实上,蜜蜂不必通过这样费劲的方式来传递这样的信息。它们从采
_________.
设f(x)连续,f(0)=1,令F(t)=f(x2+y2)dxdy(t≥0),求F"(0).
802.11b无线局域网由于其便利性和可伸缩性,特别适用于()。
Whichofthefollowingstatementsaretrue?(a)-5
最新回复
(
0
)