题目描述
一个正整数有可能被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
编程实现输入任意一个正整数,找出符合上面要求的所有连续正整数序列。
输入描述
输入任意一个正整数
输出描述
输出所有满足要求的连续正整数序列,要求每行输出一个序列,每个序列都从最小正数开始,从小到大顺序输出,如果没有符合要求的序列,则输出“NONE”。
输入样例
15
输出样例
1 2 3 4 5
4 5 6
7 8
AC代码如下:
#include "iostream" #include "cstdio" #include "cstring" #include "iostream" #include "cstdio" #include "algorithm" #include "cstring" #include "string" #include "cmath" using namespace std; int main(int argc, char* argv[]) { int n; cin>>n; int flag=0; for(int i=1;i<n;i++) { for(int j=1;j<=i;j++) { int sum=0; for(int k=j;k<=i;k++) sum+=k; if(sum==n) { flag=1; for(int k=j;k<=i;k++) cout<<k<<" "; cout<<endl; } } } if(flag==0) cout<<"NONE"<<endl; return 0; }