任意整数拆分成相邻的整数和序列,例如输入6输出6=1+2+3,如果不能分解就输出none

#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)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值