package Recursion;
/**
*斐波那契而数列:前两位是1,其他每一位都等于前两位的和
*
* 方法传入的参数是位数 比如传入10 就是要计算第10位的值是多少
* 、
* 1 1 2 3 5 8 13 21 34 55 89
*/
public class Recursion {
public static void main(String[] args) {
System.out.println(fibonacci(10));
}
public static int fibonacci(int n) {
//每次执行方法对计数+1
count++;
//因为斐波那契而数列 最少也是1位,所以判断,小于1 返回-1
if(n < 1) {
return -1;
}
//因为斐波那契而数列的前两位都是1 所以判断n如果是1或者是2 就直接返回1
if(n == 1||n ==2) {
return 1;
}
//除了前两位,每一位的值都等于前两位的和,所以第n位 (n-1)位+(n-2)位
return fibonacci(n - 1) + fibonacci(n - 2);
// return fibonacci(4) + fibonacci(3); n=5
// return fibonacci(3) + fibonacci(2); n=4
// return fibonacci(2) + fibonacci(1); n=2
}
JavaSE基础之斐波那契数列(递归算法)——恋天小结
最新推荐文章于 2022-01-18 18:57:55 发布