關於使用Java代碼解決兔子問題__Java

來源:互聯網
上載者:User

意大利偉大的數學家斐波那契曾經提出這麼一個問題:
假定一對大兔子每月能生一對小兔子(一雄一雌),且每對新生的小兔子經過一個月可以長成一對大兔子,如果不發生死亡,且每次均生下一雌一雄,問由一對剛出生的小兔開始,一年後共有多少對大兔子。
關於這道數學題怎麼解呢,如何用Java程式完成對這道題的編程呢。
首先必須要找到這道題的規律,好了,通過分析,我們可以得出這樣的結論:
第一個月:有1對兔子
第二個月:有1對兔子
第三個月:有2對兔子
第四個月:有3對兔子
第五個月:有5對兔子
第六個月:有8對兔子
……
由此我們得出這樣的一組數列:1,1,2,3,5,8…
通過觀察我們發現:假設這個數列有n>2項,則有An=A(n-1) +A(n-2),也就是這道兔子問題的規律是第n項等於第n-1項加上第n-2想

好了,找到了規律後,下面我們就一起來看代碼吧。。。

public class Test4 {    public static void main(String[] args) {        System.out.println(getRabitFormMoon(5));    }    public static int getRabitFormMoon(int n){        if(n<0){            System.out.println("輸入的月數不能小於0");            return 0;        }        if(n==1||n==2){   //第一項和第二項都等於1,所以當是n=1和n=2都返回1            return 1;        }        return getRabitFormMoon(n-1)+getRabitFormMoon(n-2);   //如果不是第一和第二項,則返回前一項+前一項的前一項的和    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.