1. 程式人生 > >遞迴-斐波納挈數列(不死神兔)

遞迴-斐波納挈數列(不死神兔)

1.遞迴,指在當前方法內呼叫自己的這種現象

public void method(){

System.out.println(遞迴的演示);

//在當前方法內呼叫自己

method();

}

2.有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問第二十個月的兔子對數為多少?

public class Work05 {

	public static void main(String[] args) {
		/*古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,
		 * 		     小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,
		 *  	     問第二十個月的兔子對數為多少?
		 *  
		 *  
		 *  1
		 *  1
		 *  2
		 *  3
		 *  5
		 *  8
		 *  13
		 *  
		 *  規律:除了第一個月和第二月以外,其餘每個月都是前兩個月之和
		 *  斐波那契列數
*/
		
	System.out.println(shentu(20));
	
	}	//定義一個球兔子的方法;
	//用遞迴的方法
	static public int  shentu(int a){
		if(a==1){
			return 1;
		}else if(a==2){
			return  1;
		}else{
			return shentu(a-1)+shentu(a-2);
		}
		
	}
	

}
public class DiguiDemo2 {
    
    // 用陣列方式演示。
    public static void main(String[] args) {
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        for (int x = 2; x < arr.length; x++) {
            arr[x] = arr[x - 2] + arr[x - 1];
        }
        System.out.println(arr[19]);
    }
}