日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA经典兔子问题

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA经典兔子问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有一對兔子,從出生第三個月起每個月都生一對兔子,小兔子長到第三個月后,每個月又生一對兔子,假如兔子都不死,問M個月時兔子的數量。

很經典的斐波那契數列問題。 記得第一次看到這道題是在一次比賽中,當時并不知道斐波那契數列,但是列出來幾個月的兔子數后看到了這個規律,按照這個規律寫出來的代碼沒有通過測試。

斐波那契數列(Fibonacci sequence),又稱黃金分割數列,因數學家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:F(0)=1,F(1)=1,?F(n)=F(n - 1)+F(n - 2)(n?≥ 2,n?∈ N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用。

很長一段時間沒有看過這道題了,這次偶然做到這道題,我們試試不用遞歸不用斐波那契數列,從另一個角度來解決這個問題。

nq3為本月可以生兔子的,有老兔子和在本月才到3月的兔子,此兔子不會清零,只會一直增加。

nq2為本月到2月的兔子,由于有兔子去了3月,需清零,再加上剛到2月的兔子。

nq1為本月剛出生的兔子,同nq2,有兔子去了2月,清零,再加上nq3生的兔子。

由于兔子不會死亡,本月剛出生兔子 + 2月兔子 + 可以生兔子的兔子 = 本月兔子總數 (按對計算)

(PS:這么思考邏輯是對的,但是我有點不理解,小兔子長到第三個月后,按我的理解應該是,假如從四月出生的兔子,4 -> 5 -> 6 -> 7,(四月初1個月到五月初,五月初1個月到六月初,六月初1個月到七月初)應該是在七月初這個兔子才可以生新兔子。

這個題目里長到第三個月后,4 -> 5 -> 6 是這樣理解的嗎?如果我理解的有問題,敬請指正。)

public class Rabbit{public static void main(String[] args){//兔子問題for(int month = 1; month < 21; month++){int nq3 = 1;int nq2 = 0;int nq1 = 0;int sum = nq3 + nq2 + nq1;for(int i = 3; i <= month; i++){nq3 += nq2;nq2 = 0;nq2 += nq1;nq1 = 0;nq1 += nq3;sum = nq3 + nq2 + nq1;}System.out.println(month + "月:" + sum);}} }

總結

以上是生活随笔為你收集整理的JAVA经典兔子问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。