算法(一)斐波那契数列

简介: 斐波那契数列

菲波那切数列:0,1,1,2,3,5,8,13,21

规律:F0=0,F1=1,Fn=F(n-1)+F(n-2)

 

需求:输入数组下标,显示斐波那契数列中对应的数字。

我这里使用两种方法实现:递归和非递归

<?php
 
    /**
     * 非递归
     */
    function getNumber($number)
    {
        $array = [];
        $array[0] = 0;
        $array[1] = 1;
        for($i = 2;$i<=$number;$i++)
        {
            $array[$i] = $array[$i - 1] + $array[$i - 2];
        }
        return $array[$number];
    }
 
    $res = getNumber(20);
    echo "非递归结果:".$res;
    echo "<br>";
 
    /**
     * 递归
     */
    function getNumberDiGui($number)
    {
        if($number == 0)
        {
            return 0;
        }
        else if($number == 1)
        {
            return 1;
        }
        else
        {
            return getNumberDiGui($number - 1) + getNumberDiGui($number - 2);
        }
    }
 
    $ult = getNumberDiGui(20);
    echo "递归结果:".$ult;

 

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

目录
相关文章
|
6月前
|
算法
【算法优选】 动态规划之斐波那契数列模型
【算法优选】 动态规划之斐波那契数列模型
|
6月前
|
机器学习/深度学习 算法 测试技术
【动态规划】C++算法:446等差数列划分 II - 子序列
【动态规划】C++算法:446等差数列划分 II - 子序列
|
1月前
|
算法 Java 索引
数据结构与算法学习十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法
四种常用的查找算法:顺序查找、二分查找(折半查找)、插值查找和斐波那契查找,并提供了Java语言的实现代码和测试结果。
18 0
|
1月前
|
算法 Java 编译器
【递归算法】斐波那契变形问题(C/C++)
【递归算法】斐波那契变形问题(C/C++)
|
3月前
|
存储 算法
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
本文通过《趣学算法》中的斐波那契数列问题,探讨了算法的递归实现、时间复杂度分析,并展示了如何通过迭代和优化存储空间来改进算法,最终将时间复杂度从指数级降低到线性级,并将空间复杂度从线性级降低到常数级。
82 0
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
|
5月前
|
算法
【超直白】算法:斐波那契数列
【超直白】算法:斐波那契数列
【超直白】算法:斐波那契数列
|
5月前
|
算法 Java 测试技术
斐波那契数列的四种实现算法
斐波那契数列的四种实现算法
103 3
|
5月前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
5月前
|
算法
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
419 1
|
5月前
|
算法 Java
斐波那契查找算法 (java)
斐波那契查找算法 (java)