您的位置:首页 > 理论基础

1955-计算机基础知识大赛 2

2013-11-23 09:54 274 查看
描述

如果一个自然数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;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: