#include<iostream>
using namespace std;
int main()
{
int i,j,k=0,n,x,b,h,t=1;
cout<<"place input:";
cin>>n;
for(i=1;i<=n/2;i++) //从1开始到n/2一个一个的试
{
for(j=i,x=0;k<n;j++,x++) // 当和不超过n时一直试,x记录试的次数
{
k=k+j;
}
if(k==n) //如果跳出来的k值等于n才执行
{
cout<<n<<"=";
for(b=i,h=1;b<i+x;b++,h++) //第一个加数是i,h记录加的次数
{
if(h==x) //因为h从1开始,当h=k时,此时i是最后一个加数
cout<<b; //这时不需要多输出一个“+”
else
cout<<b<<"+";
}
cout<<endl; //每一个序列执行过后都换一次行
t=0; //如果找到这样一个序列t就等于0,否则为初始值1
}
k=0; //每次循环过后都要保证k从0开始
}
if(t==1)
cout<<"none";
return 0;
}
```![执行结果](https://img-blog.csdnimg.cn/20190619224941929.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpR3VhbmdZYW9IRU5V,size_16,color_FFFFFF,t_70)
![执行结果](https://img-blog.csdnimg.cn/20190619225015208.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpR3VhbmdZYW9IRU5V,size_16,color_FFFFFF,t_70)
任意整数拆分成相邻的整数和序列,例如输入6输出6=1+2+3,如果不能分解就输出none
最新推荐文章于 2021-11-06 23:45:25 发布