美文网首页
递归算法(一)

递归算法(一)

作者: xmgh1024 | 来源:发表于2020-01-31 19:36 被阅读0次

用递归计算斐波那契数列,那么什么是斐波那契数列呢?这里引用百度百科的定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:

F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

代码如下:

    public class Test01 {

        public static void main(String[] args) {

            System.out.println(f(8));

        }

        public static int f(int n) {

            if(n<=2) {

                return 1;

            }

            return f(n-2)+f(n-1);

        }

    }

用递归计算数,需要注意关键的三点。第一,必须有跳出的条件,否则会导致内存溢出,比如上面的代码找到了第8项,递归回调8次就跳出来了;第二,必须给初始值赋值,否则无法计算出数;

第三,需要推导出要计算的表达式。用递归计算斐波那契数列的表达式的规律为,前两项的加起来等于第三项,用数学表达式即为:F(n)=F(n - 1)+F(n - 2)

相关文章

  • python递归算法、尾递归算法及优化

    文章概述 递归算法和尾递归概述递归算法的优化 递归算法 介绍:递归算法是计算机编程领域非常重要的一种算法,采用分而...

  • 快速幂模板

    递归算法 非递归算法

  • Java递归算法详解

    递归算法是一种直接或者间接调用自身函数或者方法的算法。Java递归算法是基于Java语言实现的递归算法。递归算法的...

  • C++ 递归算法

    递归算法,尾递归算法求阶乘!

  • 矩阵链乘法

    递归算法: 迭代算法: 分析 递归算法:规模为n的问题,有n个递归,每个递归又有相应矩阵个数个递归,故T(n)=T...

  • 【Python】(十一)从汉诺塔看Python中的递归问题

    递归的原则 递归算法必须具有基本情况。 递归算法必须改变其状态并向基本情况靠近。 递归算法必须以递归方式调用自身 ...

  • 一、算法

    目标 递归算法查找算法算法分析十大排序算法 递归算法 什么是递归递归,在数学与计算机科学中,是指在函数的定义中使用...

  • 欧几里得算法

    非递归算法 默认输入 m>=n 递归算法

  • 递归、回溯、分治

    递归 (1)子集 方式一:递归算法 方式二:位运算算法 (2)子集II 方法一:递归算法 方法二:位运算 (3)组...

  • 数据结构第二季 Day13 递归 、斐波那契数列

    一、初识递归 1、递归的定义?递归是算法思想或者算法策略吗? 递归的定义:函数(方法)直接或者间接调用自身。 严格...

网友评论

      本文标题:递归算法(一)

      本文链接:https://www.haomeiwen.com/subject/aifnthtx.html