用程序算法解决“以百元买百鸡”的经典问题

我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡每只5元,母鸡每只3元,小鸡3只一元,现要求用100元钱买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("算法总耗时:", end - start)

二、

import time

# 开始时间
start = time.time()
for x in range(0, 101, 5):  # 公鸡
    for y in range(3, 101 - x, 3):  # 母鸡
        z = 100 - x - y  # 小鸡
        if (x // 5 + y // 3 + z * 3 == 100) and (x + y + z == 100):
            print("公鸡有%d只\t母鸡有%d只\t小鸡有%d只" % (x // 5, y // 3, z * 3))
# 结束时间
end = time.time()
print("算法总耗时:", end - start)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值