题目:输入一个正数n,输出所有和为n的连续正数序列,例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6、7-8。
- void FindContinuousSequence(int n)
- {
- assert(n >= 3);
- int small = 1;
- int big = 2;
- int mid = (1+n)/2;
- int sum = small+big;
- while(small < mid)
- {
- if(sum == n)
- {
- cout << small << "-" << big << endl;
- sum -= small;
- small++;
- }
- else if(sum > n)
- {
- sum -= small;
- small++;
- }
- else
- {
- big++;
- sum += big;
- }
- }
- }