中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?

题目中给出了公鸡5元一只,母鸡3元一只,小鸡1元3只

那么可以得出,100元最多可以买20只公鸡,30只母鸡,100只小鸡(因为题目要求买鸡的总数就为100),

公鸡+母鸡+小鸡==100只    5*公鸡+3*母鸡+小鸡/3==100元

现在就可以进行穷举了

for coke in range(0,21):
    for hen in range(0,34):
        for chicken in range(0,101):
            if (coke+hen+chicken)==100 and 5*coke+3*hen+chicken/3==100:
                print(f"公鸡{coke}只  母鸡{hen}只  小鸡{chicken}只")

优化:

由于公鸡,和母鸡的只数确定后,鸡的总数为100,那么小鸡的数量就为(100-公鸡-母鸡),这样最内的循环就可以省略了

for coke in range(0,21):
    for hen in range(0,34):
        chicken = 100-coke-hen
        if (coke+hen+chicken)==100 and 5*coke+3*hen+chicken/3==100:
            print(f"公鸡{coke}只  母鸡{hen}只  小鸡{chicken}只")

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐