Java 編程題目 第一題

package com.liuhuan.test;

import java.util.Scanner;

/*
 * 古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,
 * 假如兔子都不死,問每個月的兔子總數爲多少?
 * 
 * ****************************分析************************
 * 其實這個題目就是“斐波納契數列”;
 * 問題描述:求解Fibonacci數列的第n個位置的值?(斐波納契數列(Fibonacci Sequence),
 * 又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……在數學上,
 * 斐波納契數列以如下被以遞歸的方法定義:F1=1,F2=1,Fn=F(n-1)+F(n-2)(n>2,n∈N*))。
 */
public class fun01 {
	/*
	 * 第一步:分析數據邏輯
	 * 1,1,1+1,2+1,3+2,5+3,8+5,13+8,21+13......
	 */
	
	public int fun(int mounth){ //求每個月的數量
		if(mounth<=2) return 1;
		else
		return fun(mounth-1)+fun(mounth-2);
	}
	/*
	 *   遞歸算法是一種直接或者間接調用自身函數或者方法的算法。
	 *   
	 */
	public static void main(String[] args) {
		fun01 testfun=new fun01();
		System.out.println("輸入你要查詢數量的月份");
		Scanner input=new Scanner(System.in);
		int m=input.nextInt();
		System.out.println("數量爲"+testfun.fun(m));	
	}
}



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