快速业务通道

表正整数n为连续整数的条件和方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

表正整数n为连续整数的条件和方法

时间:2011-06-27 BlogJava qiyadeng

今天看到关于一个整数表示为n个连续整数和的问题。搜索了下找到如下文章:

还搜索到程序的实现:http://blog.csdn.net/Solstice/archive/2006/09/13/1217700.aspx

http://squall.cs.ntou.edu.tw/cprog/Assignments/99Fall/FindGivenSum.html

http://blog.chinaunix.net/u2/76292/showart_1359876.html(这个是不正确的)

我也简单的实现了下:(g++编译,主要思路是利用等差数列求和公式n=(a+a+k)*(k+2)/2列举k,找到合适的a)

#include <iostream> #include <math.h> using namespace std; int main(){   int n;   cout<<"input n:"<<endl;   cin>>n;   int maxk=(int)sqrt((double)n*2);   int flag = 0;   //cout<<"maxk="<<maxk<<endl;   //for(int i=1;i<maxk+1;i++){   for(int i=maxk+1;i>0;i--){      double a = n/(double)(i+1)-i/(double)2;     //cout<<"a="<<a<<endl;     if(a>0&&a-(int)a==0){       //cout<<i<<endl;       for(int j=0;j<i+1;j++){         cout<<a+j<<" ";       }       cout<<endl;       flag=1;     }   }   if(flag==0){     cout<<"NONE"<<endl;   }   return 0; }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号