Java中統計兔子的數量
阿新 • • 發佈:2018-11-15
今天是編寫Java的第一天
下面是今天解決的問題:一個關於統計兔子數量的java程式設計題目。
題目分析:
*題目1:: *有一對兔子,從出生後第3個月起每個月都生一對兔子, *小兔子長到第三個月後每個月又生一對兔子, *假如兔子都不死,問每個月的兔子對數為多少? * * *程式分析:每個月的兔子個數規律 *a表示為一個月齡兔子, b表示兩個月齡的兔子 c表示成年的兔子 *只有成年的兔子才有生育能力 *第1個月:( a + b*0 ) + c*0 = 1 *第2個月:(a*0 + b*1 ) + c*0 = 1 *第3個月: (a*1 + b*0 ) + c*1 = 2 *第4個月:(a*1 + b*1 ) + c*1 = 3 *第5個月:(a*2 + b*1 ) + c*2 = 5 *第6個月: (a*3 + b*2 ) + c*3 = 8 *第7個月:(a*5 + b*3 ) + c*5 = 13 *第8個月:(a*8 + b*5 ) + c*8 = 21 *第9個月:(a*13 + b*8 ) + c*13 = 34 *第10個月 (a*21 + b*13) + c*21 = 55 *第11個月 (a*34 + b*21) + c*34 = 89 *第12個月 (a*55 + b*34) + c*55 = 144 */ /* *變數分析: *變數1 月份 : 第n月 *變數2 第n月中不可以生育的兔子個數: f1 只 *變數3 第n月中可以生育的兔子個數: f2 只 *變數4 第n月中兔子總量: fn 只 */ /* *數學表示式: * 第一個月: f1 = a + b*0 = 1 , f2 = c*0 = 0 , fn = f1 + f2 = 1 ; * 第二個月: f1 = a*0 + b*1 = 1 , f2 = c*0 = 0 , fn = f1 + f2 = 1 ; * ------------------------------------------------------------------------ * 第三個月: f1 = a*1 + b*1 = 1 , f2 = c*1 = 1 , fn = f1 + f2 = 2 ; * 第四個月: f1 = a*2 + b*1 = 2 , f2 = c*1 = 1 , fn = f1 + f2 = 3 ; * 第五個月: f1 = a*2 + b*1 = 3 , f2 = c*2 = 2 , fn = f1 + f2 = 5 ; * 第六個月: f1 = a*3 + b*2 = 5 , f2 = c*3 = 3 , fn = f1 + f2 = 8 ; * 可以得出規律:fn--->f1 <-----| * f1--->f2 | * f2--->fn ----->| * 即:f(n)= f(n-1)+ f(n-2);
程式碼塊:
import java.util.Scanner;
public class RabbitCount {
public static void main(String[] args){
while(true){
//Scanner是一個類,使用者能夠從 System.in 中讀取一個數:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//呼叫計算兔子總量的方法,並輸出兔子總量
System.out.println("第" + n + "月的兔子總量"+fn(n));
}
}
//定義一個方法用於計算兔子總量
public static int fn(int n){
if((n == 1)||(n == 2)){
//n為第一月和第二月的時候兔子總量為1
return 1;
}else{
return fn(n-1) + fn(n-2);
}
}
}
總結:
完整的編寫一個程式,所需要的步驟還是十分講究的。這的程式碼是再記事本里面寫的,用doc命令去執行的,處理起來是有一些繁瑣,但更能夠深入的瞭解java的執行機制,所以對於初學者而言還是有好處的。如果用Eclipse開發,就簡單的多了。
- 第一天的學習思維導圖
-,