输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个),例如输入15,打印:1-5,4-6,7-8
<span style="font-size:18px;">#include<iostream>
#include<malloc.h>
using namespace std;
void find(const int sum)
{
if(sum<3)
return;
int small=1;
int big=2;
int mid=(sum+1)/2;
int cur=small+big;
while(small<mid)
{
if(cur==sum)
{
for(int i=small;i<=big;i++)
cout<<i<<' ';
cout<<endl;
big++;//找到之后进行更新
cur+=big;
}
if(cur<sum)
{
big++;
cur=cur+big;
}
if(small<mid && cur>sum)
{
cur-=small;
small++;
}
}
}
void main()
{
int sum;
cin>>sum;
find( sum);
}</span>