剩余最短木料,怎么是剩余木料大于0

img


问一下怎么限定剩余木料长度大于0啊!麻烦用简单的代码,才开始学习的学生,社区里能够搜到的答案所用代码没学过啊

设材料的长度为l,可以写成 l = 19x+23y+a,于是题目的意思就是当x,y取何值时,a的值最小。于是我们可以穷举出所有的a,打印最小值即可。
另外不难得出,x的取值范围为0到l//19,y的取值范围为0到l//23,而当剩下的材料小于0时,则取值不成立,于是可列出代码如下

l = int(input())
b = []
for x in range(l//19+1):
    for y in range(l//23+1):
        a = l-19*x-23*y
        if a<0:
            break
        b.append((a,x,y))
res = min(b)
print(f"19米{res[1]}段,23米{res[2]}段,剩余{res[0]}米")