斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。
第一种 递归:
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int counter = 0; counter <= 40; counter++){
long fibonacci = fibonacci(counter);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
public static long fibonacci(long number) {
if ((number == 0) || (number == 1)) {
return number;
}
else {
return fibonacci(number - 1) + fibonacci(number - 2);
}
}
第二种 循环:
public static void main(String[] args) {
long start = System.currentTimeMillis();
fibonacci();
long end = System.currentTimeMillis();
System.out.println("运行时间:"+(end - start));
}
public static void fibonacci(){
int x = 1;
int y = 1;
int z ;
for (int i = 3; i <=40;i++) {
z=y+x;
x=y;
y=z;
System.out.println(z);
}
}
第三种 数组:
public static void main(String[] args) {
long start = System.currentTimeMillis();
int [] arr = new int[10];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i <arr.length; i++) {
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println(Arrays.toString(arr));
long end = System.currentTimeMillis();
System.out.println("运行时间:"+(end - start));
}