1955-计算机基础知识大赛 2
描述
如果一个自然数n能写写成若干个连续自然数之和,则称其为自然数n的一个“分拆”。
如9=4+5,9=2+3+4,我们就说“4+5”与“2+3+4”是9的两个“分拆”。
编程求出任意数n的所有“分拆”。
输入
输入数据包含多组样例,每组样例包含一个自然数n。
输出
对于每组样例,列出所有可能分拆(按字典序,每行一种可能分拆,行内个数字以空格隔开),没有则输出 none。
样例输入
9
2
样例输出
2 3 4
4 5
none
#include<iostream>
using namespace std;
void put(int a,int b)
{
int k;
for(k=a;k<b;k++)
cout<<k<<" ";
cout<<b<<endl;
}
int main()
{
int n;
while(cin>>n)
{
int m,i,j,f;
f=0;
for(i=1;i<n;i++)
{
m=0;
for(j=i;j<n;j++)
{
m=m+j;
if(m==n)
{
put(i,j);
f=1;
break;
}
if(m>n) break;
}
}
if(f==0) cout<<"none"<<endl;
}
return 0;
}

浙公网安备 33010602011771号