斐波那契数列
斐波那契数列
斐波那契数列又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”;
* 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
* 其规律是从第3个数开始,每个数都等于它前两个数的和。
递归解法:
public static long fibonacci(long index) { if ((index == 1) || (index == 2)) return 1; else return fibonacci(index - 1) + fibonacci(index - 2); }
循环解法:
public static long fibonacci(long index) { if(index == 1 || index == 2) { return 1; } int first = 1; int second = 1; int third; for(long i = 3l; i <= index; i ++) { third = first + second; first = second; second = first; } return third; }
利用数组得到数列本身:
public static long[] fibonacci(int size) { if(size <= 0) { throw new RuntimeException(); } long[] fibonacci = new long[size]; if(size == 1) { fibonacci[0] = 1l;
return fibonacci; } fibonacci[0] = 1l; fibonacci[1] = 1l;
if(size == 2) {
return fibonacci;
}
for(int i = 0; i < size; i ++) {
if(i == 0 || i == 1) {
continue;
}
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
}
return fibonacci;
}