一头牛6年寿命,第3,5岁各生一头牛,n年后多少牛python

如题所述

第1个回答  2022-07-21

先统计观察,前几年的规律:

发现偶数年等于奇数年的数量,奇数年的数量等于前两个奇数年数的和。

def cow_number(years):

n1=0

n2=2

for i in range(1,years+1):

if i in [1,2]: #第1,2年数量为1

print("第{}年的牛数:".format(i),1)

if i%2==1 and i>2:

cownumber=n1+n2

n1=n2

n2=cownumber

print("第{}年的牛数:".format(i),cownumber)

if i%2==0 and i>2:

print("第{}年的牛数:".format(i),cownumber)

cow_number(18)

years=int(input("输入年份:"))

n1=0

n2=2

count=2

if years<=0:

print("请输入一个正整数。")

elif years in [1,2]:

print("第{}年的牛数:".format(years),1)

elif years%2==1 and years>2:

while count<years: span=""> </years:>

cownumber=n1+n2

n1=n2

n2=cownumber

count+=2

print("第{}年的牛数:".format(years),cownumber)

elif years%2==0 and years>2:

while count<years: span=""> </years:>

cownumber=n1+n2

n1=n2

n2=cownumber

count+=2

print("第{}年的牛数:".format(years),cownumber)


import pandas as pd

def cow_number(years):

df=pd.DataFrame({"第1年":[1,0,0,0,0,0]},

index=["第1岁","第2岁","第3岁","第4岁","第5岁","第6岁"])

for i in range(years+1):

if i%2==1 and i>1:#观察如果是奇数年,上年有牛龄是3和5的牛

df["第{}年".format(i)]=df.shift(1)["第{}年".format(i-1)]

df["第{}年".format(i)][0]=df["第{}年".format(i-1)][:5].sum()

if i%2==0 and i>1:

df["第{}年".format(i)]=df.shift(1)["第{}年".format(i-1)]

df["第{}年".format(i)][0]=0

return df

print(cow_number(16).sum())

相似回答