鱼C论坛

 找回密码
 立即注册
查看: 2775|回复: 5

python求助

[复制链接]
发表于 2023-3-9 11:43:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
设计for循环、while循环求解重复处理的问题;
百钱买百鸡: 公鸡每只5元, 母鸡每只3元, 小鸡3只1元, 现要求用100元买100只鸡, 问公鸡、母鸡和小鸡各买几只?
g,m,x=5,3,1
for i in range(3,98):
    a=i
    for j in range(1,33):
        b=j
        for k in range(1,20):
            c=k
            if a + b + c == 100 and i/3*x+g*c+m*b==100:
                break
print("公鸡买",k,"只","母鸡买",j,"只","小鸡买",i,"只")
为什么结果是这样?


公鸡买 19 只 母鸡买 32 只 小鸡买 97 只

应该怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-9 11:47:42 | 显示全部楼层
已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-9 17:39:44 | 显示全部楼层
请将帖子类型设为已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-10 12:38:40 | 显示全部楼层
怎么将帖子类型设为已解决?不会欸
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-11 10:37:54 | 显示全部楼层
1.第一种办法,点击编辑→主题分类(现在显示的是问题求助)→改为已经解决
2.设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-11 16:43:32 | 显示全部楼层
这个问题可以使用穷举法求解,因为给定了鸡的数量和价格的限制条件,可以通过枚举所有可能的解来找到符合条件的组合。

代码中使用了三层嵌套的 for 循环,分别枚举公鸡、母鸡和小鸡的数量。在每一次循环中,判断当前方案是否符合要求,如果符合就输出结果并结束程序。

然而,代码中存在一个错误,即在符合条件的情况下直接使用了 break 语句跳出了内层循环,导致只输出了最后一组符合条件的结果。应该使用一个变量记录符合条件的结果,然后在所有循环结束后输出这个结果。

下面是使用 while 循环来实现的代码:

g, m, x = 5, 3, 1
i = 3
result = ""
while i < 98:
    j = 1
    while j < 33:
        k = 1
        while k < 20:
            if i + j + k == 100 and i * x/3 + g * k + m * j == 100:
                result = f"公鸡买{k}只,母鸡买{j}只,小鸡买{i}只"
                break
            k += 1
        j += 1
    i += 1
print(result)
这个代码中使用了三个 while 循环来代替 for 循环,其余部分与原代码类似。运行结果为:

公鸡买19只,母鸡买32只,小鸡买49只
可以看到,这个结果是正确的,符合题目要求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表