Python 循环结构练习-穷举法

发布时间:2024年01月21日

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

题目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

输出:

3121

题目3:计算机产生一个1-100的随机数,人输入自己猜的数字,计算机给出对应的提示“大一点”、“小一点”、或“恭喜你答对了”,直到猜中为止。如果猜的次数超过7次,计算机温馨提示“智商余额明显不足”。

实现:

import random

answer = random.randrange(1, 101)
count = 0
while True:
    count += 1
    user_answer = int(input('请输入你猜的数字:'))
    if user_answer < answer:
        print('大一点')
    elif user_answer > answer:
        print('小一点')
    else:
        print('恭喜你猜对了')
        break
if count > 7:
    print('温馨提示:智商余额明显不足')

题目4:输入10个1-99的整数,计算平均值,找出最大值和最小值。

实现:

total = 0
max_value, min_value = 0, 100
for _ in range(10):
    temp = int(input('请输入:'))
    total += temp
    if temp > max_value:
        max_value = temp
    if temp < min_value:
        min_value = temp
print(f'平均值:{total / 10}')
print(f'最大值:{max_value}')
print(f'最小值:{min_value}')
文章来源:https://blog.csdn.net/mr_five55/article/details/135735185
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。