例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
分析:这是网易的一道面试题。
#include <iostream>
using namespace std;
void findSumSear(int n)
{
int small = 1,big = 2;
int mid = (n+1)/2;
int sum = small+big;
if(sum == n)
{
for(int i = small;i<=big;i++)
cout << i << " ";
cout << endl;
}
while(small < mid)
{
if(sum < n)
{
sum+= ++big;
}
else
{
sum-=small;
small++;
}
if(sum == n)
{
for(int i = small;i<=big;i++)
cout << i << " ";
cout << endl;
}
}
}
int main()
{
findSumSear(21);
return 0;
}