1. 程式人生 > >菲波那契數 ----C++

菲波那契數 ----C++

第一種方法,藉助陣列。

#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    int n;
    cin>>n;
    int a[100];  //使用陣列方法
    a[0]=0;
    a[1]=1;
    for(int i=2; i<=n; i++)
    {
        a[i]=a[i-1]+a[i-2];      //主要的計算
    }
    for(int j=0; j<n; j++)   //查詢輸出,每一項
{ cout<<a[j]<<endl; } return 0; }

第二種方法,藉助向量。

#include <fstream>
#include <iostream>
#include <vector>  //引用容器
using namespace std;
int main(int argc, char* argv[])
{
    int n;
    cin>>n;
    vector<int> v;  //使用向量方法
    v.push_back(0
); v.push_back(1); //後插方式,相當於陣列的下標賦值。 for(int i=2; i<=n; i++) { v.push_back(v[i-1]+v[i-2]); //主要的計算 } for(int j=0; j<n; j++) //查詢輸出,每一項 { cout<<v[j]<<endl; } return 0; }

使用向量容器,下標賦值:

#include <fstream>
#include <iostream>
#include <vector> using namespace std; int main(int argc, char* argv[]) { int n; cin>>n; vector<int> v(n); //使用向量方法,向量大小為n v[0]=0; v[1]=1; //下標方式賦值 for(int i=2; i<=n; i++) { v[i]=(v[i-1]+v[i-2]); //主要的計算 } for(int j=0; j<n; j++) //查詢輸出,每一項 { cout<<v[j]<<endl; } return 0; }

定義的向量的大小是輸入的n,使用迭代器進行遍歷查詢。

#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
    int n;
    cin>>n;
    vector<int> v(n);  //使用向量方法,大小是輸入的n
    v[0]=0;
    v[1]=1;  //下標方式賦值
    for(int i=2; i<=n; i++)
    {
        v[i]=(v[i-1]+v[i-2]);    //主要的計算
    }
    vector<int>::iterator it;  //定義迭代器
    for(it=v.begin(); it!=v.end(); it++)
    {
        cout<<*it<<endl;
    }
    return 0;
}

定義的向量的大小是固定值100,使用迭代器進行遍歷查詢。

#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
    int n;
    cin>>n;
    vector<int> v(100);  //使用向量方法,預先定義
    v[0]=0;
    v[1]=1;  //下標方式賦值
    for(int i=2; i<=n; i++)
    {
        v[i]=(v[i-1]+v[i-2]);    //主要的計算
    }
    vector<int>::iterator it;  //定義迭代器
    for(it=v.begin(); it<=v.begin()+n-1; it++) //遍歷時候的上限要改變形式
    {
        cout<<*it<<endl;
    }
    return 0;
}

ps:本帖僅新手可見,其餘人員自行迴避。