版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1. 斐波那契数列
不少编程问题都和斐波那契数列有关,或者可以看做是斐波那契数列的另一种表述,比如一个经典的青蛙跳台阶问题
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级,求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
2. 解法
本质上就是斐波那契问题,对于第n个台阶来说,只能从n-1或者n-2的台阶跳上来,所以
F(n) = F(n-1) + F(n-2)
/**
* 斐波那契数列问题
* 1.数组实现 1 1 2 3 5 8 13....
* a[0]=1,a[1]=1;
* a[x>=2]=a[x-1]+a[x-2];
*
* 2.变量变化实现 a b
* 1 1
* 1 2
* 2 3
* 3 5
* 5 8
* a=1,b=1;
* tem=a;
* a=b;
* b=b+tem;
* 3.递归实现
*/
public static int fib(int n) {
if (n == 0)
return 0;
if (n == 1 || n == 2) {
return n;
} else {
return fib(n - 1) + fib(n - 2);
}
}