最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++求Fib數(shù)列

 更新時間:2016年02月27日 16:48:23   投稿:hebedich  
本文給大家匯總介紹了幾種C++求Fib數(shù)列的方法,有需要的小伙伴們可以來參考下

1. 第一版本程序

int fib(int pos)
  {
    int elem = 1;
    int n1 = 1, n2 = 1;
    for (int i = 3; i <= pos; i++)
    {
      elem = n2 + n1;
      n1 = n2;
      n2 = elem;
    }
    return elem;
  }

2. 第二版本

bool fib(int pos, int &elem)
  {
    if(pos < 0 || pos > 1024)
    {
      elem = 0;
      return false;
    }
    elem = 1; //注意:定義只能有1次
    int n1 = 1, n2 = 1;
    for (int i = 3; i <= pos; i++)
    {
      elem = n2 + n1;
      n1 = n2;
      n2 = elem;
    }
    return true;
  }

主函數(shù)調(diào)用

int main()
  {  
      int pos;
    cout <<"Please enter a position: ";
    cin >> pos;
  
    int elem;
    if(fib(pos, elem))
    {
      cout << "element # " << pos
         << " is " << elem << endl;
    }
    else
      cout << "Sorry. Couldn't calculate element #"
         << pos <<endl;
  }

3. 第三版本 改進后的fib

const vector<int>* fib_new(int size)
  {
    const int max_size = 1024;
    static vector<int> elems;
  
    if(size <= 0 || size >= max_size)
    {
      cerr << "fib_new(): oops:invalid size:"
         << size << "-- can't fulfill request.\n";
      return 0;
    }
    for(int ix = elems.size(); ix < size; ix++)
    {
      if (ix == 0 || ix == 1)
        elems.push_back(1);
      else
        elems.push_back(elems[ix - 1] + elems[ix - 2]);
    }
    return &elems;
  }

主函數(shù)調(diào)用

    const vector<int> *result=fib_new(5);
    cout << result->back();
    
    const vector<int> *result=fib_new(5);
    cout << result->at(4)<< endl;
    //這個應(yīng)該怎么多次調(diào)用返回,這個還沒明白,留個記號。

最后這個版本可以避免進行重復(fù)運算,使用了局部靜態(tài)對象。

相關(guān)文章

  • 配置CLion管理Qt項目國際化支持的方法

    配置CLion管理Qt項目國際化支持的方法

    這篇文章主要介紹了配置CLion管理Qt項目國際化支持的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • C++淺析函數(shù)重載是什么

    C++淺析函數(shù)重載是什么

    C++?允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function?Overloading),借助重載,一個函數(shù)名可以有多種用途
    2022-08-08
  • C語言實現(xiàn)打磚塊小游戲

    C語言實現(xiàn)打磚塊小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)打磚塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++調(diào)用Matlab函數(shù)求特征值

    C++調(diào)用Matlab函數(shù)求特征值

    這篇文章主要為大家詳細(xì)介紹了C++調(diào)用Matlab函數(shù)求特征值,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++面向?qū)ο缶幊讨鰳?gòu)詳解

    C++面向?qū)ο缶幊讨鰳?gòu)詳解

    這篇文章主要為大家詳細(xì)介紹了C++面向?qū)ο缶幊讨鰳?gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言運算符的優(yōu)先級和結(jié)合性實例詳解

    C語言運算符的優(yōu)先級和結(jié)合性實例詳解

    本文主要介紹C語言運算符的知識,這里對運算符的優(yōu)先級和結(jié)合性做出了詳解,并附實例代碼,希望能幫助有需要的小伙伴
    2016-07-07
  • C++實現(xiàn)的大數(shù)相乘算法示例

    C++實現(xiàn)的大數(shù)相乘算法示例

    這篇文章主要介紹了C++實現(xiàn)的大數(shù)相乘算法,結(jié)合實例形式分析了C++大數(shù)相乘的概念、原理及代碼實現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • 一文帶你深入了解Qt中的順序容器類與關(guān)聯(lián)容器類

    一文帶你深入了解Qt中的順序容器類與關(guān)聯(lián)容器類

    Qt中也有很多容器類,他們在存取速度、內(nèi)存開銷等方面進行了優(yōu)化,使用起來更輕量級、更便捷,下面就跟隨小編一起來學(xué)習(xí)一下它們的具體使用吧
    2024-04-04
  • C語言常見的指針筆試題解析

    C語言常見的指針筆試題解析

    在我們學(xué)習(xí)指針之后,應(yīng)該在實際應(yīng)用中去理解和掌握它,畢竟實踐才是檢驗真理的唯一標(biāo)準(zhǔn),我們以后在找工作的過程中免不了會遇到與指針相關(guān)的試題,本篇文章可以幫助我們提前了解一些常見的指針考點,需要的可以了解一下
    2022-10-10
  • OpenCV中Grabcut算法的具體使用

    OpenCV中Grabcut算法的具體使用

    本文主要介紹了OpenCV中Grabcut算法的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

栾城县| 中江县| 营口市| 阜宁县| 河南省| 新疆| 宝鸡市| 日照市| 宁远县| 武陟县| 宣化县| 巫山县| 庆城县| 安远县| 定兴县| 墨竹工卡县| 藁城市| 两当县| 奉化市| 舒城县| 鹤壁市| 浦东新区| 巴马| 蓝山县| 静乐县| 调兵山市| 庐江县| 亚东县| 子洲县| 长子县| 温宿县| 阳泉市| 怀来县| 浦江县| 来宾市| 徐闻县| 邵阳市| 河北省| 仙桃市| 合江县| 弋阳县|