Python求解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])
            for i in range(len(self.dict)):
                # 一年过去了,小猪生完崽,给小猪加一岁
                self.dict[i][0] += 1
            if self.dict[0][0] > 4:
                # 如果小猪大于4岁,将其数组中的值销毁
                del self.dict[0]
                
            # 显示当前猪圈猪的数量
            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()

运行结果: 

 每次都是第一行达到最大年龄,不必循环找年龄>4的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值