void print(int s, int b)
{
for (int i = s; i <= b; i++)
{
cout << i << " ";
}
cout << endl<<"------------------------------" << endl;
}
void judgeshuzu(int sum)
{
int l = 1, r = 2;
int mid = (sum + 1) / 2;
int cursum = l + r;
while (l<mid)
{
if (cursum == sum)
{
print(l, r);
r++;
cursum = cursum + r;
}
else if (l<mid&&cursum > sum)
{
cursum = cursum - l;
l++;
}
else if (l<mid&&cursum < sum)
{
r++;
cursum = cursum + r;
}
}
}
void FindContinuousSequence(int sum)
{
if (sum < 3)
return;
int small = 1;
int big = 2;
int middle = (1 + sum) / 2;
int curSum = small + big;
while (small < middle)
{
if (curSum == sum)
print(small, big);
while (curSum > sum && small < middle)
{
curSum -= small;
small++;
if (curSum == sum)
print(small, big);
}
big++;
curSum += big;
}
}
int main()
{
judgeshuzu(15);
cout << "++++++++++++++++++++++++++++++++++++++++++++++++++" << endl;
FindContinuousSequence(15);
system("pause");
return 0;
}
{
for (int i = s; i <= b; i++)
{
cout << i << " ";
}
cout << endl<<"------------------------------" << endl;
}
void judgeshuzu(int sum)
{
int l = 1, r = 2;
int mid = (sum + 1) / 2;
int cursum = l + r;
while (l<mid)
{
if (cursum == sum)
{
print(l, r);
r++;
cursum = cursum + r;
}
else if (l<mid&&cursum > sum)
{
cursum = cursum - l;
l++;
}
else if (l<mid&&cursum < sum)
{
r++;
cursum = cursum + r;
}
}
}
void FindContinuousSequence(int sum)
{
if (sum < 3)
return;
int small = 1;
int big = 2;
int middle = (1 + sum) / 2;
int curSum = small + big;
while (small < middle)
{
if (curSum == sum)
print(small, big);
while (curSum > sum && small < middle)
{
curSum -= small;
small++;
if (curSum == sum)
print(small, big);
}
big++;
curSum += big;
}
}
int main()
{
judgeshuzu(15);
cout << "++++++++++++++++++++++++++++++++++++++++++++++++++" << endl;
FindContinuousSequence(15);
system("pause");
return 0;
}