0


算法——经典例子之Python实现百钱白鸡问题

问题:公鸡5元一只,母鸡3元一只,小鸡1元三只,用100元买一百只鸡,问公鸡、母鸡、小鸡各有多少只?

拆题:

1.现在问的是公鸡、母鸡、小鸡各多少只。从最简单的方式解答:
(1)如果只买公鸡,不买母鸡和小鸡(即母鸡=0只,小鸡=0只),那公鸡最多就是100元➗5元=20只;

(2)如果只买母鸡,不买公鸡和小鸡(即公鸡=0只,小鸡=0只),那母鸡最多就是100元➗3元=33只(论整只);

(3)因为小鸡的价格不是整数,所以我们可以用公鸡母鸡小鸡的总只数,100只,做计算,小鸡只数=100只-公鸡只数-母鸡只数。

2.现在假设 公鸡只数=x,母鸡只数=y,小鸡只数=z。

3.因为x,y,z的总和得是100只,才符合本题的要求,每个类别的鸡的数量是相互作用的(此多彼少,此少则彼多),所以需要一个循环嵌套在另一个循环下。

4.代码如下:

forxin range(21):
    foryin range(34):
        z =100 - x - y
        if z % 3==0 and 5 * x + 3 * y + z // 3==100:
            print(x, y, z)

(1)第一句 for x in range(21) ,这里因为数字是从0开始,所以要写21。下一句的数字34同理。

(2)说一下if语句,有两个条件,
条件一是小鸡数量要能被3整除,即 z % 3 == 0。
条件二是公鸡母鸡小鸡的总只数得是100只,即 5 * x + 3 * y + z // 3 == 100。
两个条件同时成立(即“and”),则打印 x, y, z的值。

5.执行结果:
在这里插入图片描述

标签: python 算法

本文转载自: https://blog.csdn.net/mascotyak/article/details/119451636
版权归原作者 mascotyak 所有, 如有侵权,请联系我们删除。

“算法——经典例子之Python实现百钱白鸡问题”的评论:

还没有评论