兔子生兔子的Java解決方式
阿新 • • 發佈:2019-02-13
最近在學python,其中有這樣一道題
古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
沒有做出來,先用筆在紙上算的時候也是稀裡糊塗的。後來想辦法建模運算,畢竟Java語言號稱模擬自然界,向來是有辦法解決的,過程中遇到了很多問題,也有一些思考,現在把我認知到的內容分享給大家,希望對大家有幫助
第一,分解問題,大問題轉換為小問題,小問題用程式設計方式解決出來。
第二,寫註釋,按照註釋的內容構建自己的類。
好了,下面上程式碼
第一個類 helo.java
import java.util.ArrayList;
/**
* Created by Y_a on 2016/12/8.
*/
public class helo {
public static void main(String[] args) {
Tuzi hehe = new Tuzi(0);
ArrayList<Tuzi> tuziwo = new ArrayList<Tuzi>();
tuziwo.add(hehe);
for (int i = 1; i < 20; i++) {
//年齡大於3的兔子生小兔子
for (int j = 0; j < tuziwo.size(); j++) {
if (tuziwo.get(j).isAgeBigger(i)) {
//把小兔子加到窩裡面去
tuziwo.add(new Tuzi(i));
}
}
}
System.out.print(tuziwo.size());
}
}
第二個類 Tuzi.java
/**
* Created by Y_a on 2016/12/9.
*/
public class Tuzi {
int birthday = 0;
public Tuzi(int birthday) {
this.birthday = birthday;
}
public boolean isAgeBigger(int currentDay) {
return (currentDay - birthday >= 2) ? true : false;
}
}
結果圖