非递归写法:
function fbnq($n){ //传入数列中数字的个数
    if($n <= 0){
        return 0;
    }
    $array[1] = $array[2] = 1; //设第一个值和第二个值为1
    for($i=3;$i<=$n;$i++){ //从第三个值开始
        $array[$i] = $array[$i-1] + $array[$i-2];
    //后面的值都是当前值的前一个值加上前两个值的和
    }
    return $array;
}

function f2($n){

    $num1 $num2 $temp = 1;
    for($i=2;$i<$n;$i++){
//1 1 2 3 5 8 13 ....
        $temp $num1 $num2;  //$temp = 2
        $num1 $num2;          //$num1 = 1
        $num2 $temp;          //$num2 = 2
    }
    return $temp;
}
 

递归写法:
function fbnq($n){
    if($n <= 0) return 0;
    if($n == 1 || $n == 2) return 1;
    return fbnq($n - 1) + fbnq($n - 2);
}

PHP实现斐波那契数列(递归 + 非递归)实现的更多相关文章

  1. 斐波那契数列PHP非递归数组实现

    概念: 斐波那契数列即表达式为 a(n) = a(n-1)+a(n-2) 其中 a1 =0 a2 = 1  的数列 代码实现功能: 该类实现初始化给出n,通过调用getValue函数得出a(n)的值 ...

  2. JS 从斐波那契数列浅谈递归

    一.前言 昨晚下班后,经理出于兴趣给我们技术组讲了讲算法相关的东西,全程一脸懵逼的听,中途还给我们出了一道比较有趣的爬楼问题,问题如下: 假设一个人从地面开始爬楼梯,规定一步只能爬一坎或者两坎,人只能 ...

  3. 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)

    递归与循环 递归:在一个函数的内部调用这个函数. 本质:把一个问题分解为两个,或者多个小问题(多个小问题相互重叠的部分,会存在重复的计算) 优点:简洁,易于实现. 缺点:时间和空间消耗严重,如果递归调 ...

  4. 9 斐波那契数列Fibonacci

    题目1:写一个函数,输入n,求Fibonacci数列的第n项.该数列定义如下: n=0时,f(n)=0; n=1时,f(n)=1; n>1时,f(n)=f(n-1)+f(n-2) 1. 效率差的 ...

  5. 剑指offer【07】- 斐波那契数列(java)

    题目:斐波那契数列 考点:递归和循环 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0),n<=39. 法一:递归法,不过递归比较慢, ...

  6. callee和斐波那契数列

    如果一对兔子每月生一对兔子:一对新生兔,从第二个月起就开始生兔子:假定每对兔子都是一雌一雄,试问一对兔子,第n个月能繁殖成多少对兔子? ———————————————————————————————— ...

  7. 练习六:斐波那契数列(fibonacci)

    题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列 ...

  8. 几种复杂度的斐波那契数列的Java实现

    一:斐波那契数列问题的起源 13世纪初期,意大利数论家Leonardo Fibonacci在他的著作Liber Abaci中提出了兔子的繁殖问题: 如果一开始有一对刚出生的兔子,兔子的长大需要一个月, ...

  9. 斐波那契数列Fibonacci问题—动态规划

    斐波那契数列定义 Fibonacci array:1,1,2,3,5,8,13,21,34,... 在数学上,斐波那契数列是以递归的方法来定义: F(0) = 0 F(1) = 1 F(n) = F( ...

  10. (转)从斐波那契数列看Java方法的调用过程

    斐波那契数列的定义: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列安纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔 ...

随机推荐

  1. MARKDEEP.js-一个轻松在HTML中输入MD代码的JavaScript库

    MARKDEEP.js-一个轻松在HTML中输入MD代码的JavaScript库 http://casual-effects.com/markdeep/ 引入: <style class=&qu ...

  2. 蓝桥杯训练赛二-问题 A

    题目描述 用简单素数筛选法求N以内的素数. 输入 N 输出 2-N的素数 样例输入 100 样例输出 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 ...

  3. jjupyter notebook 修改存储位置和修改默认浏览器

    先jupyter notebook --generate-config 找到配置文件位置 打开这里的哪个文件 然后修改即可 1.修改默认打开目录找到 #c.NotebookApp.notebook_d ...

  4. sap IUT240 Contract Accounts Receivable and Payable pdf

    sap IUT240 Contract Accounts Receivable and Payable  pdf sap IUT240 Contract Accounts Receivable and ...

  5. Finance财务软件(月度结转专题)

    支持按模板结转 默认结转模板 1.结转收入 借: 6001 主营业务收入 6051 其他业务收入 6301 营业外收入 贷: 4103 本年利润 2.结转成本.费用和税金 借: 4103 本年利润 贷 ...

  6. vue- cube-scroll踩坑记

    坑: 下拉刷新,上拉加载一直处于加载中  ---  原因:未结束此次下拉或上拉  ---解决:forceUpdate()结束上拉或下拉 无法正常滚动  --- 原因:数据更新了,但页面高度未变化 -- ...

  7. 批量导入数据到redis--速度极快

    ##批量导入数据到redis1)创建含有redis命令的文本并转换格式vim test.txt-------------------------HMSET provinceblack:14716261 ...

  8. Text文件颜色渐变

    using UnityEngine;using System.Collections;using System.Collections.Generic;using UnityEngine.UI;usi ...

  9. [mysql练习]多行结果合并问题练习

    有一个scores表,表结构和数据如下: id, stu_id, name,course, grade 1,1,贾万, 语文, 902,1,贾万 ,数学 ,100 3,2,毛之远 ,语文 ,974,2 ...

  10. unity读取Excel表格保存到Sqlite数据库

    1.读取Excel表格和保存sqlite数据库所用到的dll文件   下载链接:dll文件 最后如下图所示 废话不多说了,直接上代码吧 因为太长就折叠了 using System.Collection ...