<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qiyadeng

    專注于Java示例及教程
    posts - 84, comments - 152, trackbacks - 0, articles - 34

    表正整數n為連續整數的條件和方法

    Posted on 2009-01-19 16:37 qiyadeng 閱讀(1917) 評論(3)  編輯  收藏

    今天看到關于一個整數表示為n個連續整數和的問題。搜索了下找到如下文章:

    表為連續正整數
    View SlideShare document or Upload your own.

    還搜索到程序的實現: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;
    
    }
    
    

    Feedback

    # re: 表正整數n為連續整數的條件和方法  回復  更多評論   

    2009-01-19 23:51 by 墻頭草
    不錯哦~~~~~




    =================================================================
    Struts2的零配置
    Struts2利用stream直接輸出Excel
    Struts2結合dhtmlx tree
    Struts2中ZeroConfig和CodeBehind下的Stream類型返回
    struts中html:select標簽和html:options 的使用

    更多Struts

    # re: 表正整數n為連續整數的條件和方法  回復  更多評論   

    2009-01-22 10:45 by appu
    good.
    實現倒是不難, 關鍵是怎么樣讓它執行次數最少,至少是比較少。

    # re: 表正整數n為連續整數的條件和方法  回復  更多評論   

    2010-08-11 10:59 by glq2000
    網上講連續整數和問題的博文很多,但博主這篇最講的最明白,贊一個~~~

    我按照樓主論文提供的方法寫了一個,代碼如下,其循環次數為O(n/4),相比之下還是樓主的方法更快些,循環次數為O(sqrt(2n)),
    void ContinueInt(int n)
    {
    int i, k, m, num=0;
    for(i=3; i<n/2+1; i +=2) //以步長為2從3開始到n/2為止,求n的所有奇數因子
    {
    if(n%i == 0)
    {
    ++num;
    m = n/i;
    k = (i-1)/2;
    for(int j=(m-k>0)?(m-k):(k-m+1); j<=m+k; ++j) //利用論文中的結論
    cout<<j<<" "; //即n=(2k+1)*m=(2k+1)*2m/2=(2k+1)(m-k+m+k)/2
    cout<<endl;
    }
    }
    if(n%2)//n本身是奇數
    {
    ++num;
    cout<<(n-1)/2<<" "<<(n-1)/2+1<<endl;
    }
    cout<<"in all, num="<<num<<endl;
    }

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲?V无码乱码国产精品| 成年女人免费视频播放77777| 免费大黄网站在线看| 亚洲国产欧洲综合997久久| 中国在线观看免费国语版| 亚洲av永久无码嘿嘿嘿| 国产免费AV片在线播放唯爱网 | 在线观看免费人成视频| 亚洲国产精品xo在线观看| 久九九精品免费视频| 亚洲最大的成人网站| 四虎永久免费观看| 亚欧洲精品在线视频免费观看| 国产成人精品日本亚洲专区 | 国产亚洲精品无码拍拍拍色欲| 成人无码WWW免费视频| 亚洲综合久久1区2区3区| 99无码人妻一区二区三区免费| 中文字幕在线观看亚洲视频| 国内自产拍自a免费毛片| 在线精品自拍亚洲第一区| 中文字幕久久亚洲一区 | 亚洲第一福利网站在线观看| 国产精品九九久久免费视频| 国产亚洲成av片在线观看| 日本免费网站视频www区| 亚洲av无码专区在线观看下载| 亚洲精品国精品久久99热| 日本免费中文视频| 精品国产日韩久久亚洲| 亚洲中文字幕伊人久久无码| 最近最新高清免费中文字幕 | 日韩免费a级毛片无码a∨| 羞羞视频免费网站含羞草| 久久国产精品亚洲综合| 拍拍拍又黄又爽无挡视频免费| 国产午夜亚洲精品不卡免下载| 国产V亚洲V天堂无码| 毛片a级毛片免费观看免下载 | 日韩免费高清大片在线| 亚洲综合国产成人丁香五月激情|