裴波那契数列的递归实现与非递归实现

本文介绍了斐波那契数列,它以递归方式定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2)。由于递归效率较低,文章探讨了非递归实现斐波那契数列的方法,通过保存前两次计算结果避免递归,提高计算性能。
摘要由CSDN通过智能技术生成

斐波那契数列是数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,也称为“兔子数列”。

指的是这样一个数列: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*)

由于递归在计算过程中非常慢,所以本文提供了裴波那契数列的非递归实现。并且提供时间参数,用以对比两种方式的性能。

递归的思路是套用公式:F(n) = F(n-1) + F(n-2)

非递归的方式:每次保存上一次计算的结果,当计算新的一天时,只需要把保存的结果相加即可,而不用递归了。

public static void main(String[] args) {
		
		long currentTime1 = System.currentTimeMillis();
		System.out.println(fibonacciRecursion(40));
		long endTime1 = System.currentTimeMillis()-currentTime1;
		System.out.println("递归方式计算所需时间:"+endTime1);
		
		
		long currentTime2 = System.currentTimeMillis();
		System.out.println(fibonacciNotRecursion(40));
		long endTime2 = Sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值