先统计观察,前几年的规律:
发现偶数年等于奇数年的数量,奇数年的数量等于前两个奇数年数的和。
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())