首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
38
问题
输入一个正数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
程序员面试
相关试题推荐
重载与覆盖的区别
不开辟新空间完成字符串的逆序
.net中读写XML的类都归属于哪些命名空间?
保存当前浏览的www.sina.com的网页到“D:\网页保存”文件夹,保存名称是新浪网页文字版,保存类型是txt。
把D:下的图片文件夹进行网络共享但是其他网络用户只能读取。
请打开"计算器"应用程序,利用科学型模式将十六进制的ABC转换为二进制。
在“回收站”中有一个“样例.doc”文件,将它还原。
将回收站中的"应用"文件夹删除。
关于PPoint97启动对话框的描述,()是错误的。A.使用“内容提示向导”,能在系统提示下创建新演示文稿B.使用“模板”可生成具有一定布局和色彩的幻灯片C.“打开已有的演示文稿”选项没有任何作用D.使用“空演示文稿”创建一张空白幻灯片
根据防火墙的功能来理解,我们认为防火墙不可能()。
随机试题
一般认为梅毒感染无症状仅血清学阳性的期限在________年之内,称为早期潜伏期梅毒。
功能矫治器最常用于
眶尖部急性炎症可致眶尖综合征,其临床表现中,错误的是
垂体分泌的促性腺激素包括()
持续性心房颤动是指心房颤动持续时间()
未经公安消防机构审核或者经审核不合格的需进行消防设计的建筑工程,()。
否定之否定规律揭示了事物发展的()的过程。
权变计划
TheHistoryofGlobalizationGlobalizationiscommonlybelievednottohavebeenaconcernin【D1】______.In1841,awriterfrom
WherecanyoufindapostofficeintheUnitedStates?Perhapsin______.
最新回复
(
0
)