【每日面试题】输入一个正数n,输出所有和为n连续正数序列

来源:互联网 发布:浙江建造师网络教育 编辑:程序博客网 时间:2024/04/26 12:54
 题目:输入一个正数n,输出所有和为n连续正数序列。

例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。
代码如下:

 

//输入一个正数n,输出所有和为n连续正数序列
void func(int n)
{
 for(int i=1;i<=n/2+1;i++)
 {
  int m=0,k=0;
  int sum=0;
  for(int j=i;j<=n/2+1;j++)
  {
            sum+=j;
   if(sum==n)
   {
    m=j;
    k=i;
    break;
   }
   if(sum>n) break;
  }
  if(m>0)
  {
   for(int i=k;i<m;i++)
    cout<<i<<"+";
   cout<<m<<"="<<n<<endl;

  }
 }
}

原创粉丝点击