题目要求:

  输入一个正数n,输出所有和为n连续正数序列(至少两个)。

  例如输入15,由于1+2+3+4+5 = 4+5+6 = 7+8 = 15.所以输出3个连续序列1~5,4~6,7~8.

  参考资料:剑指offer第41题。

题目分析:

  由题意可知:从1~n中找连续的整数序列。

  可以用两个变量small和big表示一个区间small~big,再用一个变量sum表示这个区间的数的和如果sum>n,则small向后移,如果sum<n则big向后移,如果sum=n则输出该区间small~big.

代码实现:

  

#include <iostream>

using namespace std;

void FindContinuousSequence(int n);

int main(void)
{
int n; cout << "请输入n:"; cin >> n;
FindContinuousSequence(n); return ;
}
void Print(int small,int big)
{
cout << "连续序列有:";
for(int i = small;i<=big;i++)
cout << i << " ";
cout << endl;
}
void FindContinuousSequence(int n)
{
//因为至少两个正数,1+2=3,因此如果n<3则不存在连续序列
if(n<)
return;
int small = ;
int big = ;
//至少两个数,则最小的数肯定小于mid,作为退出while条件
int mid = (+n)/;
int curSum = small+big;
while(small<mid)
{
if(curSum==n)
Print(small,big);
while(curSum>n && small<mid)
{
curSum -= small;
small++;
if(curSum==n)
Print(small,big);
}
big++;
curSum += big;
}
}

  

最新文章

  1. HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
  2. sql报句柄无效。 (异常来自 HRESULT:0x80070006 (E_HANDLE))
  3. Oracle数据库建表并用SQL编程分等级
  4. App压力测试整理
  5. Spring MVC与表单日期提交的问题
  6. PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
  7. NFC应用(二)读写器模式
  8. UVA - 12333 字典树+大数
  9. 强化学习(十七) 基于模型的强化学习与Dyna算法框架
  10. June. 25th 2018, Week 26th. Monday
  11. ftp定时任务-日志备份
  12. python 字典 拼接SQL语句
  13. Python文件打包成exe
  14. 36、NSTimer使用详解-开启、关闭、移除
  15. gnome美化
  16. TeeChart设置图表的标题
  17. angular5 路由传参的几种方式
  18. XPath 常用语法札记
  19. [并查集] 1118. Birds in Forest (25)
  20. html-blogsdemo

热门文章

  1. 【踩坑】springMVC 接收String参数没有判断为空
  2. linux+apache+mod_python+wechat_sdk搭建微信公共账号服务器
  3. IT界程序员几大恶习能立即让你变穷,你有吗?
  4. CoreData介绍
  5. UITableView设计思想 考察
  6. ubuntu开放端口
  7. event loop、进程和线程、任务队列
  8. js引入的数组 会被页面缓存,如需要被强制性不缓存,请用function return 就ok了
  9. Lemonade Trade
  10. Python 求两个文本文件以行为单位的交集 并集 差集