题目:
输入一个正数n,输出所有和为n连续正数序列。
例如输入15,输出1 2 3 4 5、4 5 6、7 8
void PrintContinuesSequence(int small, int big)
{
for(int i=small; i<=big; ++i)
cout << i <<" ";
cout << endl;
}
void FindContinuesSequence(int n)
{
if (n<3)
return;
int small=1;
int big=2;
int middle=(1+n)/2;//用于判断结束
int sum =small+big;
while(small < middle)
{
if(n==sum)
PrintContinuesSequence(small, big);//重新计算sum后就要判断
while(sum > n)
{
sum -=small;//先减去small
small++;
if(n==sum)
PrintContinuesSequence(small, big);//注意需要重新计算sum后就要判断
}
big++;
sum +=big;
}
}