027、Python 循环结构练习-穷举法

穷举法:穷尽所有的可能性,然后设置条件,找到问题的解 —> 暴力破解法

题目1:鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1,用百钱买百鸡,问鸡翁、鸡母、鸡雏几何。

实现:

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

输出:

0 25 75
4 18 78
8 11 81
12 4 84

题目2:五个人(ABCDE)晚上去捕鱼,捕了不计其数的鱼,然后累了去睡觉。第二天,A第一个醒过来,把鱼分成了5份,扔掉了多余的1条,然后拿走自己的1份;B第二个醒过来,以为鱼没分过,把剩下的鱼分成了5份,扔掉多余的1条,拿走自己的一份;C、D、E依次醒过来,都按照同样的方法来分鱼。问它们最少捕了多少条鱼?

实现:

fish = 6
while True:
    is_enough = True

    # 检查目前的鱼的数量够不够五个人分
    total = fish
    for _ in range(5):    # 此处变量为_是Python中没用到时的惯用写法
        if (total - 1) % 5 == 0:
            total = (total - 1) // 5 * 4
        else:
            is_enough = False
            break

    if is_enough:
        print(fish)
        break
    fish += 5

输出:

<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿游也

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值