斐波那契以兔子的数量展示他的数列。最开始有一对小兔子,一个月后成熟。第二个月,母兔妊娠,第三个月,生一对小兔。小兔也花一个月成熟,然后,如同它们的父母,从第三个月开始每月生一对小兔。斐波那契发现每月的兔子数都是前两个月的数量之和。
1. 通过for循环的方式实现斐波那契计算
package fbnq;
import java.util.Date;
public class For_fb {
public static long fb(int num){
long value1= 1L;
long value2 = 1L;
for (int i=0;i<num;i++){
if (i>1){
long temp = value2;
value2 = value1+temp;
value1 = temp;
}
}
return value2;
}
public static void main(String[] args) {
//记录开始时间
Date start =new Date();
//开始计算斐波那契数列的第50个值
long fb = fb(50);
//记录结束时间
Date end =new Date();
//打印计算结果
System.out.println(fb);
//计算时间查
long diff = end.getTime()-start.getTime();
//打印消耗时间
System.out.println("消耗时间:"+diff);
}
}
- 运行结果
2. 通过递归的方式实现斐波那契计算
package fbnq;
import java.util.Date;
public class dg_fb {
public static long fb(int num){
if (num<=2){
return 1;
}else {
return fb(num-1)+fb(num-2);
}
}
public static void main(String[] args) {
//记录开始时间
Date start =new Date();
//开始计算斐波那契数列的第50个值
long fb = fb(50);
//记录结束时间
Date end =new Date();
//打印计算结果
System.out.println(fb);
//计算时间查
long diff = end.getTime()-start.getTime();
//打印消耗时间
System.out.println("消耗时间:"+diff);
}
}
- 运行结果