頭條筆試:母牛生產


1. 母牛生產

母牛從3-7歲初每年會生產1頭小母牛,10歲后死亡(10歲仍然存活),假設初始有1頭剛出生的母牛,請問第n年有多少頭母牛?(年從第一年開始計數)

 

思路:

注: 在沒有任何思路的情況下,可以先暴力分析,順着題意將給出的示例推導出來,然后再從中觀察規律,找到更為便捷的方法;

 

1. 先暴力分析:從第一年開始,計算每年的母牛個數;

基本思路:以最開始的母牛為基准進行分析,分析每年它生產的孩子的個數,最后加1 就是每年牛的個數;

 

 

觀察上述分析結果,我們會發現:有很多重復地方,即母牛這題含有重復子結構,最常用的方法就是:用數組變量,將重復的地方記錄下來。

(1)sum:記錄每次的求和部分

(2)opt[ i ]:記錄第 i 年母牛的個數, opt[ -1] :表示最終的輸出結果

(3)一次循環遍歷,記錄 sum 和 opt[ i ],時間復雜度:O(n)

 

Python代碼:

 1 # 母牛生產
 2 import sys
 3 for line in sys.stdin:
 4     n = int(line)
 5     if n < 3:
 6         print('1')
 7     else:
 8         opt = [0 for i in range(n + 1)]
 9         opt[0] = -1
10         opt[1] = 1
11         opt[2] = 1
12 
13         sum = 0
14         for i in range(3, n+1):
15             if i >=  3 and i <=7:
16                 sum = sum + opt[i - 2]
17                 opt[i] = sum + 1
18 
19             elif i >= 8 and i <= 10:
20                 sum = sum - opt[i-7] + opt[i-2]
21                 opt[i] = sum + 1
22 
23             else:
24                 sum = sum - opt[i-7] + opt[i-2]
25                 opt[i] = sum
26 
27         print(opt[-1])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM