母牛6歲生小牛問題

2022-04-10 11:57:30 字數 2425 閱讀 7450

題目:

1、每頭牛6牛的時候開始生小牛,並且生得牛都是母牛;

2、農場來了一頭6歲的牛(第一年就生下一頭小牛);

問:20年後,農場有多少頭牛;

解題思路1:

我拿到這個問題的第一反應就是使用物件,建立乙個cow類,然後有乙個age屬性,再用乙個全域性變數cows來記錄牛的數量,每當我們例項化乙個牛cows就會+1。

1

class

cow

89 cow(int

age)

1213

void

growup()

16 }

接下來是main方法,只需要設定乙個年數的for迴圈,再判斷牛的年齡是否大於或等於6,大的話就例項化乙個新的物件,最後輸出結果:

1

public

class

wocow 15}

16 system.out.println("有" + cow.cows + "隻牛");17}

18}19 }

執行結果:

1

今年是第:1年

2有2隻牛

3今年是第:2年

4有3隻牛

5今年是第:3年

6有4隻牛

7今年是第:4年

8有5隻牛

9今年是第:5年

10有6隻牛

11今年是第:6年

12有7隻牛

13今年是第:7年

14有9隻牛

15今年是第:8年

16有12隻牛

17今年是第:9年

18有16隻牛

19今年是第:10年

20有21隻牛

21今年是第:11年

22有27隻牛

23今年是第:12年

24有34隻牛

25今年是第:13年

26有43隻牛

27今年是第:14年

28有55隻牛

29今年是第:15年

30有71隻牛

31今年是第:16年

32有92隻牛

33今年是第:17年

34有119隻牛

35今年是第:18年

36有153隻牛

37今年是第:19年

38有196隻牛

39今年是第:20年

40 有251隻牛

以上是使用物件的方法,下面我們來探索其中的規律:年數0

1234

5678

9101112

1314

1516

1718

1920

新增牛的數量11

1111

1我們從0年開始,因為已經有乙隻6歲的母牛了。第一年它生下了乙隻,因為它已經是大於6歲了,一直到前六6年每年只增加1只,因為其他的牛都是小於6歲的。但是到了第七年就發生的變化,在第1年生下的牛到了第7年剛好6歲,先在能生育的牛多了乙隻,以此類推:年數0

1234

5678

9101112

1314

1516

1718

1920

新增牛的數量11

1111

1234

567到了第13年的時候又發生了變化,因為在第7點出生的兩頭牛已經6歲了 :年數0

1234

5678

9101112

1314

1516

1718

1920

新增牛的數量11

1111

1234

5679

1216

2127

3443

55由此不難發現其中的規律:如果年數大於6年的話,那麼第n年增加牛的數量就是(n-5)年前所有增加牛的數量的和:

舉例:第7年增加牛的數量是:第0年的數量+第1年的數量

第8年增加牛的數量是:第0年 到 第2年的數量和

第13年增加牛的數量: 第0年到 第7年的數量和

根據這個規律,我們開始寫**:

1

int getcows(int

year)

7for (int i = 0; i < year - 5; i++)

10return

sum;

11 }

我們定義了乙個getcows()方法,這個方法的返回值就會告訴我們,當年會增加多少頭牛,下面我們寫main方法:

1

public

static

void

main(string args)

8system.out.println(sum);

9 }

執行結果:

1 251

母牛生小牛問題

若母牛從其出生第四年 3周年後 開始每年都會生一頭小 母牛,按這個規律,1頭年齡為 year 的母牛在 futureyear 個年頭後會生幾頭母牛 c code class cow console readkey public cow intyear int futureyear private i...

php演算法 母牛生小牛問題

有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。遞迴版 論壇裡的 function t n if j 20 return num 非遞迴版 原創 function suanfa n 10 else elseif age 15 elseif...

動態規劃 母牛生小牛問題

一頭剛出生的小母牛,4年後生一頭小母牛,以後每年生一頭,現有一頭剛出生的小母牛,問20年後共有多少頭牛?列舉前n年的情況 1 1 1 2 3 4 6 8 11。將規律抽象成公式 f 1 1 f 2 1 f 3 1 f n f n 1 f n 3 f n 表示第n年共有多少頭牛 f n 1 表示第n ...