面试题41-2:和为s的连续正数序列
2015-11-19 15:58
274 查看
题目描述
输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。题目分析
剑指Offer(纪念版)P216代码实现
void FindContinuousSequence(int sum) { if(sum < 3) return; int small = 1; int big = 2; int middle = (1 + sum) / 2; int curSum = small + big; while(small < middle) { if(curSum == sum) PrintContinuousSequence(small, big); while(curSum > sum && small < middle) { curSum -= small; small ++; if(curSum == sum) PrintContinuousSequence(small, big); } big ++; curSum += big; } } void PrintContinuousSequence(int small, int big) { for(int i = small; i <= big; ++ i) printf("%d ", i); printf("\n"); }
相关文章推荐
- 面试题41-1:和为s的两个数字
- iOS软件工程师必须会的面试题
- 黑马程序员日记-13
- 黑马程序员日记-11
- 黑马程序员日记-10
- 当心!程序员在职业生涯中最易犯的7个错误
- PHP程序员的成长之路
- 祝兄弟们旗开得胜—兄弟连IT教育
- 工作中的程序员如何进阶
- 黑马程序员_iOS_OC_协议
- 黑马程序员_iOS_OC_分类
- 黑马程序员——C基础---函数
- PHP面试题目搜集
- 黑马程序员--Java笔记11--静态类(Collections、Arrays、System、Runtime、Date、Calendar、Math)
- iOS面试
- 黑马程序员--Java笔记10--Collection集合、 Map集合、泛型
- iOS开发面试题
- 中级Java软件开发面试题以及答案
- 黑马程序员--Java笔记07--异常
- 黑马程序员--Java笔记04--面向对象 及单例设计模式