算法-斐波那契数列

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);
		}
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章