# 一个猪圈里有2只刚满2岁的猪,
# 每只猪只能活4年,每只猪第四年还可以生一次崽
# 2岁后每2只猪每年可以生4头小猪(假设小猪性别比例总是1:1),
# 问n年后猪圈里有几只猪?
答案是小编自己写的 ,对不对我也不知道,有大神看到的话可以帮忙指点一下感谢,
class pig:
def __init__(self, dict, n):
self.dict = dict
self.n = n
def sort(self):
for j in range(self.n):
index = 0
for i in range(len(self.dict)):
# 只接受2-4岁的小猪,
if 2 <= self.dict[i][0] <= 4:
index += self.dict[i][1] * 2
# 将今年出生的小猪添加进去
self.dict.append([0, index])
# 如果小猪大于4岁,将其数组中的值销毁,这个数组销毁困扰了小编很久,最后只能记入下表值,然后将其反转,从后面向前删除数组中的值
sums = []
for i in range(len(self.dict)):
# 一年过去了,小猪生完崽,给小猪加一岁
self.dict[i][0] += 1
if self.dict[i][0] > 4:
sums.append(i)
sums = sums[::-1]
# 删除
for i in sums:
del self.dict[i]
# 显示当前猪圈猪的数量
for i in range(len(self.dict)):
print("岁数%d,数量%d" % (self.dict[i][0], self.dict[i][1]))
print("第%d年猪的数量:%s" % (j + 1, sum(map(lambda x: x[1], self.dict))))
print()
p = pig([[2, 2]], 10)
p.sort()
input()