首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个正数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
112
问题
输入一个正数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://www.kaotiyun.com/show/axmZ777K
0
程序员面试
相关试题推荐
[A]Thatkindofdominancecreatesatensionbetweenpropertyrightsandantitrust(opposingorintendedtorestraintrusts,monop
Supposeyouwanttoapplyforajobinacompanyasanofficesecretary.Writeanapplicationemailto1)introduceyourself
实现strstr功能(寻找子串在父串中首次出现的位置)
如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。例如:输入两个
求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。
从当前界面开始,到“电话和调制解调器的选项”中,将系统中的标准56000bps调制解调器删除。
利用快捷方式向导,在桌面上为文件夹“C:\office”中的应用程序“EXCEL.EXE”创建名为“EXCEL”的快捷方式。
软盘写保护的作用是()。A.防止持签B.防止读盘C.防止显示D.防止写盘
若要改变打印时的纸张大小,正确的是()A.[页面设计]对话框中的[纸张大小]B.[页面设计]对话框中的[中文版式]C.[版式]对话框中的[中文版式]D.[工具]对话框中的[选项]
随机试题
行政执法人员滥用行政处罚裁量权的,由其所在单位予以批评教育,并由()收回其行政执法证件,取消其执法资格;情节严重的,依法给予处分。
试述经济全球化对发达国家之间的经济联系的影响。
患者的治疗不包括需要注意的是
属于试验饮食的是
FIDIC施工合同条件中设立的合同争端裁决委员会,是由()的人员组成。
著名心理学家马斯洛提出了七个层次的需要理论,同时,他还将七个层次需要分成()。
A、 B、 C、 D、 D
关于生活知识,下列说法错误的是()。
A、 B、 C、 D、 A
Iliveinastreetofenormouslate-Victorianhouses.Mosthavebeenconvertedintoflats,butquiteanumberarenowprivatepr
最新回复
(
0
)