和为n的连续自然数序列

来源:互联网 发布:淘宝 新店扶持 编辑:程序博客网 时间:2024/05/18 03:13

题目:输入一个正数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. }     

0 0
原创粉丝点击