首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
102
问题
输入一个正数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
程序员面试
相关试题推荐
OnSeptember19th,nearlyfivemonthsafterthespillstarted,BPfinallysealedtheMacondowell.Anadjoiningreliefwellhad
Asthelatestcropofstudentspentheirundergraduateapplicationformandweighuptheiroptions,itmaybeworthconsidering
四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。(2005年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。
删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))
从“系统属性”出发安装网卡驱动程序。
在Word97的编辑状态,执行“文件”菜单中的“保存”命令后()。A.将所有打开的文档存盘B.只能将当前文档存储在原文件夹的文件内C.可以将当前文档存储在已有的任意文件夹内D.可以先建立一个新文件夹,再将文档存储在该文件夹内
以下关于表格排序的说法错误的是()A.拼音不能作为排序的依据B.排序规则有递增和递减C.可按日期进行排序D.可按数字进行排序
办公自动化是目前广泛开展的一项计算机应用,按类分,它应属于下列哪一类()A.科学计算B.计算机辅助设计C.实时控制D.数据处理
关于Word打印操作的正确说法是()。A.打印格式由Word控制,用户无法调整B.Word的打印过程一旦开始,在中途无法停止打印C.打印前可进行打印预览D.Word每次只能打印一份文稿
在网络工程规划与设计过程中,选择防火墙之前应该考虑的因素有哪些?请用300字以内的文字简要回答。请为图4-13拓扑结构中PIX525防火墙各接口命名,并指定相应的安全级别和IP地址的配置语句。
随机试题
A.锋电位B.阈电位C.局部电位D.动作电位E.静息电位
下列店堂告示,违反《消费者权益保护法》规定的有
关于一般现浇楼板及框架结构的拆模顺序,说法正确的是()。
应急预案演练的参演人员所承担的具体任务主要包括()。
某承包商承包某外资工程项目的施工,与业主签订的施工合同要求:工程合同价2000万元,工程价款采用调值公式动态结算;该工程的人工费可调,占工程价款的35%;材料费有三种可调:材料1占20%,材料2占15%,材料3占15%。价格指数见表1A424033。
经济学分析认为,价格卡特尔虽然能够实现(),但价格卡特尔同盟本身是不稳定的。
确认商品销售收入时,所指的商品所有权上的主要风险和报酬包括()。
中国饮食文化历史悠久,内容丰富。清代文学家袁枚的(),就记载了明代到清代流行的食品326种,并在烹饪技术上提出了很多见解。
甲在自家宅基地上建造了一套房屋,在办理产权登记前将房屋出卖并交付给乙,办理产权登记后又将该房屋出卖给丙并办理了所有权移转登记。丙受丁胁迫将房屋出卖给丁,并完成了移转登记。丁随即将房屋出卖并移转登记于戊。根据上述案情,请回答下列问题并说明理由:甲与乙之
A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZC前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左
最新回复
(
0
)