python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python百元买百鸡

Python经典题实战记录之百元买百鸡

作者:cxn2013614

有一道著名的"百钱买百鸡"问题大家应该都不陌生,这篇文章主要给大家介绍了关于Python经典题实战记录之百元买百鸡的相关资料,文中给出了详细的代码示例,需要的朋友可以参考下

百元买百鸡问题

“百元买百鸡”是我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?用现代 语言描述为:用100元钱买来100只鸡,公鸡5元钱一只,母鸡3元钱一只,小鸡1元钱3只。请问在这100只鸡中,公鸡、母鸡、小鸡各是多少只?要求公鸡、母鸡和小鸡数量之间空一格。

第一种答案:

import time

# 开始时间
start = time.time()
# 外层循环控制公鸡数量取值范围:0~20
for x in range(0, 21):
    # 内层循环控制母鸡数量取值范围:0~33
    for y in range(0, 34):
        # 嵌套内层循环控制小鸡数量取值范围:0~100
        for z in range(0, 101):
            # 条件判断同时满足 5x+3y+ z/3== 100 和 x + y + z == 100
            if (x * 5 + y * 3 + z / 3 == 100) and (x + y + z == 100):
                print("%d\t%d\t%d" % (x, y, z))
# 结束时间
end = time.time()
print()

第二种答案:

cocks=100//5 #最多可买的公鸡数量
hens=100//3 #最多可买的母鸡数量
chicks=100*3 #最多可买的小鸡数量
for i in range(0,cocks+1):
    for j in range(0,hens+1):
        for k in range(0,chicks,3):
            total = i + j + k #总数量
            amount = 5 * i + 3 * j + int(k/3) #总金额
            if total == 100 and amount == 100:
                print(i,j,k)

总结 

到此这篇关于Python经典题实战记录之百元买百鸡的文章就介绍到这了,更多相关Python百元买百鸡内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文