最近在面试的时候被问到了斐波那契数列,而且有不同的实现方式,就在这里记录一下。
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368。
这个数列从第3项开始,每一项都等于前两项之和
在网上找的资料,亲测可以的
public class Feibo {
public static void main(String[] args) {
System.out.println(recutsion(10));
}
//第一种是用循环方法做的.
// public static void main(String[] args) {
// int num1 = 0;
// int num2 = 1;
// int numn = 1;
// int n = 10;
// for (int i = 3; i <= n; i++) {
// numn = num1 + num2;
// num1 = num2;
// num2 = numn;
// System.out.println(numn);
// }
// System.out.println(n+"个数的结果为"+ numn);
// }
// 用递归的方法实现
public static int recutsion(int n) {
if (n == 1) {
return 0;
}
;
if (n == 2) {
return 1;
}
return recutsion(n - 1) + recutsion(n - 2);
}
}