java程式入門50題分析:001

來源:互聯網
上載者:User

【程式1】

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一 對兔子,假如兔子都不死,問每個月的兔子總數為多少?

答案在下面

1.程式分析: 

親愛的你一定看到答案,拿起筆,在草稿紙上畫起了圖你,然後找規律,這是十分好的一件事情。我也是這樣的,那麼下面讓我們來看看吧。

1---1

2---1

3---1+1   (小兔子三個月後每個月又會有一對兔子)

4---1+1+1

5---1+1+1+1+1(現在有兩對兔子在生了)

6--1+1+1+1+1+1+1+1(現在有三對兔子在生了)  要看有多少個兔子在生,值要看這行前面的2行有多少個兔子就行)

7--1+1+1+1+1+1+1+1+1+1+1+1+1(4對了)要看有多少個兔子在生,值要看這行前面的2行有多少個兔子就行)

8--1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1((5對了)要看有多少個兔子在生,值要看這行前面的2行有多少個兔子就行)

9--1+1+1+1+1+1+1+1+1+1+1+1+1+-1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1((13對了要看有多少個兔子在生,值要看這行前面的2行有多少個兔子就行)

好了 規律找到了 我們來統計了

1 ,1,2,3,5,8,13,21,

兔子的規律為數列1,1,2,3,5,8,13,21.... 

那就是n的時候,就是前面兩個的和!!!

public int comRabNum(int n) //返回的是 當前月兔子的個數

那麼

public int comRabNum(n-1) //返回的是當前月前一個月兔子的個數

public int comRabNum(n-2) //返回的是當前月前2個月兔子的個數


所以了

package endual;

public class Qanswer {

//這個題目 n 是返回第n個月有多少只
//那麼 n-1 是返回 n-1個月有多個兔子
//那麼n-2是返回 n - 2個月多少個兔子嘍

public int rabbit(int n) {
int res = 0 ;

if(1 == n || 2 == n) {

return 1 ;

}

return rabbit(n-1) + rabbit(n-2) ;
}

}

這個就是答案了(很顯然用遞迴)-----------------記得結果乘以2啊,要我們求兔子的數目哦


當然還可以用for迴圈做了







聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.