首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
74
问题
输入一个正数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
程序员面试
相关试题推荐
ReinventingtheTableAnearthscientisthasrejiggedtheperiodictabletomakechemistrysimplertoteachtostudents.
列举一下你所了解的XML技术及其应用
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”Theyarestudents.”和”aeiou”,则删除之后的第一个字符串变成”Thyrstdnts.”。
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:structListNode{intm_nKey;ListNode*m_pNext;};
在C盘上搜索第二个字符为e的文件和文件夹。
在PPoint中,超级链接只有在()中起作用。A.幻灯片视图B.幻灯片放映C.幻灯片浏览视图D.大纲视图
关于计算机语言的描述,不正确的是()。A.机器语言的语句全部由0和1组成,指令代码短,执行速度快B.机器语言因为是面向机器的低级语言,所以执行速度慢C.汇编语言已将机器语言符号化,所以它与机器无关D.汇编语言比机器语言执行速度快
Dreamweaver的编辑(Edit)菜单命令中,SelectAll表示______。A.将剪贴板拷贝至当前光标位置B.从文档中删除当前选区C.选取当前文档中所有元素D.使用HTML代码将当前选区拷贝到剪贴板
计算机通信的两个最主要的指标是()A.数据传输速率和误码率B.衰减和失效率C.高效率和正确率D.硬件利用率和软件利用率
若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于___________状
随机试题
如果总体数目N很大,可以用()进行简单随机抽样。
连他也奚落起我来。奚落:
心尖区出现Austin-Flint杂音提示有
在R、L、C串联电路中,XL=20Ω。若总电压维持不变而将L短路,总电流的有效值与原来相同,则XC应为()Ω。
下列对建设项目管理的描述正确的有()。
篮球运球的练习方法有哪几种?(要求答四种以上)
材料一当前,国际金融危机继续扩散和蔓延,我国发展的外部条件更趋复杂。在一个时期内,我们将突出面临国际金融危机影响持续加深、全球经济增长明显放缓的压力,突出面临外部需求显著减少、我国传统竞争优势逐步减弱的压力,突出面临国际竞争日趋激烈、投资和贸易保护主义
学生的姓名权、荣誉权、隐私权应受到充分的尊重和保障,这指的是学生应享有()。
以下可用于解释财政支出规模增长趋势的理论包括()。①政府活动扩张论②梯度渐进增长论③经济发展阶段论④官僚行为增长论
Bankers’acceptancesoftenariseinforeigntrade.Abusinessbuyinggoodsfromabroadwhereitisnotwellknownanddoesnoth
最新回复
(
0
)