首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
118
问题
输入一个正数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
程序员面试
相关试题推荐
Shedidherwork______hermanagerhadinstructed.
Individualsandbusinesseshavelegalprotectionforintellectualpropertytheycreateandown.Intellectualproper【C1】______fro
Directions:Inthissection,youareaskedtowriteanessaybasedonthefollowinginformation.Makecommentsandexpressy
如何通过ADO.NET读取数据库中的图片?
下面是一个数组类的声明与实现。请分析这个类有什么问题,并针对存在的问题提出几种解决方案。templateclassArray{public:Array(unsignedarraySize):data(0),size(arraySize)
请恢复金山反垃圾邮件过滤列表。
在Excel97中的活动单元格中输入"1/5",默认情况下单元格内的显示是()。A.小数0.2B.分数1/5C.日期1月5日D.百分数20%
在幻灯片播放过程中,要想停止播放,可以按()。A.End键B.Esc键C.Enter键D.Home键
在演示文稿编辑过程中,正确的操作是()。A.每一张幻灯片保存为一个演示文稿文件B.所有的幻灯片都使用相同的背景C.为防止突然掉电或机器故障需经常保存演示文稿D.为防止突然掉电或机器故障应经常退出Ppoint
数据库的系统设计分为概念结构设计和逻辑结构设计。在概念结构设计时,一般采用 (1) 模型作为描述工具,因为该模型能充分地反映现实世界事物之间的联系,且易于理解和更改。
随机试题
某投资人准备投资于A公司的股票,A公司没有发放优先股,2009年的有关数据如下:每股净资产为10元,每股盈余为1元,每股股利为0.4元,该公司预计未来不增发股票,并且保持经营效率和财务政策不变,现行A股票市价为15元,目前国库券利率为4%,证券市场平均收益
非特异性感染的典型症状是
咬肌间隙感染如未及时切开引流,最常引起的并发症是
患者头晕眼花,心悸多梦,手足麻,唇甲色淡,经诊断为血虚,补血药处方中,配以益气药物其依据是()。
对于患有职业病的职工变动工作后,当这个职工到新单位后,其职业病待遇应由()承担。
中国古代的科学著作大多是经验型的总结,而不是理论型的探讨,所记各项发明都是为了解决国家与社会生活中实际问题,而不是试图在某一研究领域获得重大突破。从研究方法上来说,中国科技重视综合性的整体研究,重视从总体上把握事物,而不是把研究对象从错综复杂的联系中分离出
如下图所示,梯形下底是上底的1.5倍,梯形中阴影面积等于空白面积,三角形OBC的面积是12,那么三角形AOD的面积是()。
关于疫苗,下列说法错误的是()。
在80x86微处理器系统中,从下列哪一种微处理器开始已经将浮点运算部件集成到CPU芯片内部?
ChristmasCandlesFranklyspeaking,Christmascandlesarenodifferent/fromanyotherdecorativecandle/thatyoumightf
最新回复
(
0
)