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;
}
原文地址:https://www.cnblogs.com/wsl540/p/13734214.html