斐波那契数列的三种实现方法


前言

C++ 得到斐波那契数列三种方法


一、斐波那契数列是什么?

斐波那契数列(Fibonacci sequence)
又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。

指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

二、斐波那契数列的三种实现方法

1.递归

代码如下(示例):

//递归方法
int Recursion(int n)
{
    if(n<=2) return 1;
    return Recursion(n-1)+Recursion(n-2);
}

2.简单循环,无数组

代码如下(示例):

//简单循环,无数组
int Loop(int n)
{
    int f,b,temp;
    f=0;
    b=1;
    if(n<=1) return 1;
    for(int i=1;i<n;i++)
    {
        printf("%d ",b);
        temp=f+b;
        f=b;
        b=temp;
    }
}

3.数组

代码如下(示例):

//数组
int Array(int n)
{
    int a[max];
    a[0]=0;a[1]=1;
    if(n>1)
    {
        for(int i=2;i<=n;i++) a[i]=a[i-1]+a[i-2];
    }
}

三、完整代码

#include <iostream>
#include <stdio.h>
#define max 10005
using namespace std;

//递归
int Recursion(int n)
{
    if(n<=2) return 1;
    return Recursion(n-1)+Recursion(n-2);
}

//简单循环,无数组
int Loop(int n)
{
    int f,b,temp;
    f=0;
    b=1;
    if(n<=1) return 1;
    for(int i=1;i<n;i++)
    {
        printf("%d ",b);
        temp=f+b;
        f=b;
        b=temp;
    }
    //打印输出
    printf("%d",b);
}

//数组
int Array(int n)
{
    int a[max];
    a[0]=0;a[1]=1;
    if(n>1)
    {
        for(int i=2;i<=n;i++) a[i]=a[i-1]+a[i-2];
    }
    //打印输出
    for(int i=1;i<=n;i++) printf("%d ",a[i]);
}

int main()
{
    int n;
    printf("计算到几项:");
    scanf("%d",&n);

    printf("递归实现:");
    printf("第%d项为:%d",n,Recursion(n));

    printf("\n循环实现:");
    Loop(n);

    printf("\n数组实现:");
    Array(n);

    return 0;
}

运行结果:

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值