C++ 斐波那契數列


斐波那契數列

斐波那契數列指的是這樣一個數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
這個數列從第三項開始,每一項都等於前兩項之和。
在數學上,斐波那契數列以如下被以遞歸的方法定義:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*)。

要求:
(1) 在堆上創建一個大小為10的整形數組,存放斐波那契數列的前十項,並打印出來。
(2) 在上一個數組的基礎上,再添加十項斐波那契數列,並打印出前二十項數據。

#include <iostream>
#include <cstring>
using namespace std;
//斐波那契數列
int Fib (int n)
{
    if (n == 1 || n == 2)
    {
        return 1;
    }
    else
    {
        return Fib(n - 1) + Fib(n - 2);
    }
}

int  main(void)
{
    int n = 10;
    int *p = new int[n];
    for (auto i = 0; i < n; ++i)
    {
        p[i] = Fib(i + 1);
    }
    for (auto i = 0; i < n; ++i)
    {
        cout << p[i] << endl;
    }
    cout << "********************" << endl;
    n = 20;
    int *q = new int[20];
    memcpy(q, p, sizeof(int) * 10);
    delete []p;
    p = q;
    for (auto i = 10; i < n; ++i)
    {
        p[i] = Fib(i);
    }
    for (auto i =0; i < n; ++i)
    {
        cout << p[i] << endl;
    }
    delete []p;

    system("pause");
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM