java 实现斐波切纳数列,斐波切纳 数列 java

本文介绍了使用Java编程实现斐波那契数列的三种方法:循环、递归和递推。通过在主函数中计算第31项并测量每种方法的运行时间,展示了不同方法的效率差异。方式一采用循环实现,效率最高;方式二为递归实现,效率最低;方式三递推实现介于两者之间。
摘要由CSDN通过智能技术生成

package aaa;

import java.util.Date;

public class Fibo{

//方式1

public static void fiBoCzene(Long a,Long b,Integer i){

if (i>3) {

i--;

Long c = null;

c=a;

a=b;

b=c+b;

fiBoCzene(a, b,i);

}else {

System.out.println(a+b);

}

}

//方式二:递归方式

public static Long fibonacci(int n){

if(n <= 2){

return 1L;

}else{

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

}

}

// 方式三:递推实现方式

public static Long fibonacciNormal(int n){

if(n <= 2){

return 1L;

}

Long n1 = 1L, n2 = 1L, sn = 0L;

for(int i = 0; i < n - 2; i ++){

sn = n1 + n2;

n1 = n2;

n2 = sn;

}

return sn;

}

public static void main(String[] args) {

//现在有的水数

Integer c=31;

Long date = System.currentTimeMillis();

fiBoCzene(0L,1L,c+1);

Long date2 = System.currentTimeMillis();

System.out.println("----方式一耗时------"+(date2-date));

System.out.println(fibonacciNormal(c));

Long date3 = System.currentTimeMillis();

System.out.println("-----方式二耗时-----"+(date3-date2));

System.out.println(fibonacci(c));

Long date4 = System.currentTimeMillis();

System.out.println("-----方式三耗时-----"+(date4-date3));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值