题目描述:
给定一个自然数M,求个数大于1的连续自数数段,自然数段中的全部数之和为M(2<= M <= 2,000,000),求所有的方案。
输入格式:
一个数M。
输出格式:
输出所有的方案,每行一个方案。
样例输入:
10000
样例输出:
18--142 297--328 388--412 1998--2002
提示:
样例解释:
1998--2002, 表示区间[1998, 2002]内的所有数之和为 10000。
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s=0;
cin>>n;
for(int i=1;i<n;i++){
s=0;
for(int j=i;;j++){
s=s+j;
if(s>n){
s=0;
break;
}
if(s==n){
cout<<i<<"--"<<j<<endl;
break;
}
}
}
return 0;
}