Python作业题——“百钱买百鸡A”

目录

一、题目描述

1、输入格式

2、输出格式

二、代码解析

1、全部代码

2、代码详解

三、源代码奉上


一、题目描述

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?

Python作业题——“百钱买百鸡A”_第1张图片

1、输入格式

无输入格式

2、输出格式

每行输出一组结果,按鸡翁数、鸡母数、鸡雏数的顺序输出,数字之间用空格分隔;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如果有多组解时,按鸡翁数量由少到多输出;

二、代码解析

1、全部代码

Python作业题——“百钱买百鸡A”_第2张图片

2、代码详解

首先我们令鸡翁 i 鸡母 j 鸡雏 n

这里我们采取遍历个数的方法来判断是否符合条件。

题目中描述了共100元,鸡翁一只5元,那么最多也就只有20只,所以第一个for循环到20即可

for i in range(1,20):

同理,鸡母一只3元,最多33只

for j in range(1,33):

鸡雏三只1元,最多也就是300只,而应为钱为整数,所以最小应为3,并且鸡雏应为3的倍数,所以设置循环间隔3

for n in range(3,300,3):

 最后只需判断是否满足鸡的总数和钱的总数是否等于100即可

if 5 * i + 3 * j + n * (1/3) == 100 and i + j + n == 100:

 如果符合后,便跳出循环,寻找下一组数值

三、源代码奉上

for i in range(1,20):
    for j in range(1,33):
        for n in range(3,300,3):
            if 5 * i + 3 * j + n * (1/3) == 100 and i + j + n == 100:
                print(f'{i} {j} {n}')
                break

 喜欢的话记得三连哦~~~

感谢支持!!!

你可能感兴趣的:(算法,python)