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));
}
}
Java 編程題目 第一題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.