最近在學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; }}
結果圖