python演算法4 27 母牛數量

2021-09-19 23:50:08 字數 2345 閱讀 3586

假設母牛第3歲到第7歲會生產1頭母牛,第11歲死亡。假設第一年有1頭1歲小牛,輸入乙個表示年數的正整數n,輸出母牛個數。

例如:第三年,2頭牛;第五年,5頭牛;第十二年,123頭牛

分析:分為四種狀態,1-2歲,3-7歲(生產1歲牛),8-10歲,11歲以後(不計)

狀態模擬:

# -*- coding: utf-8 -*-

# @time : 2019/4/27

# @author : zhao huilin

# @filename: 19_0427_cowsnum.py

# @software: pycharm

# @blog :

class group():

def __init__(self):

self.new_one = [1]

self.old_one =

self.born_one =

self.new_born =

self.born_old =

self.old_death =

def year_add(self):

self.new_process()

self.born_process()

self.old_process()

def new_process(self):

self.new_born =

for i,j in enumerate(self.new_one):

self.new_one[i] += 1

for i in self.new_one[::-1]:

if i>2:

self.new_one.remove(i)

def born_process(self):

self.born_old =

for i,j in enumerate(self.born_one):

self.born_one[i] += 1

for i in self.born_one[::-1]:

if i>7:

self.born_one.remove(i)

for j in self.new_born:

for k in self.born_one:

def old_process(self):

self.old_death =

for i,j in enumerate(self.old_one):

self.old_one[i] += 1

for i in self.old_one[::-1]:

if i>10:

self.old_one.remove(i)

for j in self.born_old:

def years_add(self,n):

for i in range(n-1):

self.year_add()

self.show()

def show(self):

print('new:')

print(self.new_one)

print('born:')

print(self.born_one)

print('old')

print(self.old_one)

print('total:',len(self.new_one)+len(self.born_one)+len(self.old_one))

g = group()

g.years_add(5)

過程精簡

# -*- coding: utf-8 -*-

# @time : 2019/4/27

# @author : zhao huilin

# @filename: 19_0427_cowsnum.py

# @software: pycharm

# @blog :

def get_cow(n):

groups = [1]

for i in range(n-1):

born_num = 0

for i, j in enumerate(groups):

groups[i] += 1

if(groups[i])>2 and groups[i]<8:

born_num+=1

for i in groups[::-1]:

if i > 10:

groups.remove(i)

for i in range(born_num):

print(len(groups))

get_cow(12)

演算法題解 遞迴 母牛的數量

description有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?input輸入資料由多個測試例項組成,每個測試例項佔一行,包括乙個整數n 0output對於每個測試例項,輸出在第n年的時候母牛的數量。每個輸出...

4 27 關於python的題目

隨機密碼生成。編寫程式,在26個字母大小寫和9個數字組成的列表中隨機生成10個8位密碼。效果如圖所示.import randoma a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p ...

東華OJ第86題 母牛的數量

86 母牛的數量 問題描述 有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請程式設計實現在第n年的時候,共有多少頭母牛?說明 假設在第n年及之前所有牛都不曾死亡。輸入說明 首先輸入乙個t,表示以下包含t行輸入資料 測試例項 每行包括乙個整數n 0輸出說明 對...