首页 > 其他分享 >斐波那契数列的实现

斐波那契数列的实现

时间:2023-05-22 19:05:08浏览次数:39  
标签:数列 int long 斐波 result 那契


斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

斐波那契数列的实现

void testFibonacci(){
    for (int i = 0; i < 300; i++) {
        long long result = fibonacci(i);
        printf("result is %lld\n", result);
    }
}

int fibonacciRecursion(int n){

    if (n <= 0) {
        return 0;
    }

    if (n == 1) {
        return 1;
    }
    //指数级 - 此实现很不好
    return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
}

long long fibonacci(int n){

    if (n == 0) {
        return 0;
    }

    if (n == 1) {
        return 1;
    }

    if (n >= 2) {

        long long previous = 1;//n-1
        long long lastPrevious = 0;//n-2

        long long result = 0;

        for (int i = 2; i <= n; i++) {
            result = previous + lastPrevious;
            lastPrevious = previous;
            previous = result;
        }
        printf("f(%d) is %lld\n", n, result);
    }

    return 0;
}


标签:数列,int,long,斐波,result,那契
From: https://blog.51cto.com/u_16124099/6326575

相关文章

  • 裴波那契数列的递归和动态规划算法
    裴波那契数列的递归和动态规划算法一、   概论通过对裴波那契数列的例子,分析了递归和动态规划算法的本质。并且说明了两种算法的区别。裴波那契数列:800年前,意大利的数学家斐波纳契出版了惊世之作《算盘书》。在《算盘书》里,他提出了著名的“兔子问题”:假定一对兔子每个月可......
  • Midjourney|文心一格 Prompt:完整参数列表、风格汇总、文生图词典合集
    Midjourney|文心一格Prompt:完整参数列表、风格汇总、文生图词典合集1.Midjourney完整参数列表参数名称调用方法使用案例注意事项V5V4V3niji版本在关键词后加空格,然后带上版本参数:--v或者—v--version或者—versionvibrantcaliforniapoppies--v5......
  • Python编写输出斐波那契数列的前n项
    以下是一个使用Python编写的程序代码,可以计算并输出斐波那契数列的前n项(n由用户输入):n=int(input("请输入斐波那契数列的项数:"))a,b=0,1foriinrange(n):print(b,end="")a,b=b,a+b代码解释:用户输入斐波那契数列的项数n,并使用int()函数将输入的字符串......
  • 等差数列末项计算
    【题目描述】给出一个等差数列的前两项a1,a2,求第n项是多少。【输入】一行,包含三个整数a1,a2,n。−100≤a1, a2≤100,  0<n≤1000。【输出】一个整数,即第n项的值。【输入样例】14100【输出样例】298......
  • 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和。
    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。#引入分数模块,可以出现分数fromfractionsimportFraction#数列的规律是:分子是前一个分数的分母和分子之和,分母就是这个分数在数列中的位置#求出数列前20项之和,以分数表示numerator=2#第一个......
  • 斐波那契数列
    一、问题描述。题目求斐波那契数列的40个数,并输出要求:用for循环来遍历所有可能的选项二、设计思路。fibonacci数列可以通过多种方式进行输出,其通项公式为 F(n)=F(n-1)+F(n-2)基本的for循环、数组再到递归,都可以实现。题目要求使用for循环,求前40项第一项和第二项都是1,我们可以用a,b分别......
  • P3986 斐波那契数列
    傻逼题。首先,\(Fib_{47}=2.971215073\times10^9\)。所以说我们把这个系数整出来,然后一个一个验就可以了。这里用Ex-gcd就可以了,找到通解,然后算出正整数解的个数就可以了。//#pragmaGCCoptimize(2)#include<cstdio>#include<cmath>#include<iostream>#include<cstr......
  • 输出 截止 大于500的斐波那锲数
    classFibs:def__init__(self):self.a=0self.b=1def__next__(self):self.a,self.b=self.b,self.a+self.breturnself.adef__iter__(self):returnselffibs=Fibs()forfinfibs:iff......
  • 菲波那契数列
     【题目描述】菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1<=a<=20)。【输出......
  • 斐波那契数列
    斐波那契数列性质定义:\[f_i=\begin{cases}[i=1]&,i\le1\\f_{i-1}+f_{i-2}&,i\ge2\end{cases}\]通项:\[f_n=\frac{\left(\frac{1+\sqrt5}{2}\right)^n-\left(\frac{1-\sqrt5}{2}\right)^n}{\sqrt5}\]性质:\[\sum_{i=1}^nf_i=f_{n+2}-1\]数学归纳法易证......