和为n的连续自然数序列

题目:输入一个正数n,输出所有和为n的连续正数序列,例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6、7-8。


  1. void FindContinuousSequence(int n)     
  2. {     
  3.     assert(n >= 3);     
  4.      
  5.     int small = 1;      
  6.     int big = 2;     
  7.     int mid = (1+n)/2;     
  8.     int sum = small+big;     
  9.     while(small < mid)     
  10.     {     
  11.         if(sum == n)     
  12.         {     
  13.             cout << small << "-" << big << endl;     
  14.             sum -small;     
  15.             small++;     
  16.         }     
  17.         else if(sum > n)     
  18.         {     
  19.             sum -small;     
  20.             small++;     
  21.         }     
  22.         else     
  23.         {     
  24.             big++;     
  25.             sum += big;     
  26.         }     
  27.     }     
  28. }     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值