换钞票问题不知道对错求鉴别

题目描述:
把一张一元的钞票换成一分、两分、和五分的硬币,每种硬币至少一枚。问有哪几种换法?
列出所有的方案,一行内输出一种方案,每种方案的三个数之前用一个空格隔开。
以下是本人的代码,不知道对错,我最终算出来是461种换法,谁可以帮忙鉴别一下对错

num = 0
for i in range(1,100//5+1):
    for j in range(1,100//2+1):
        z = 100 - (i*5 + j*2)
        if i * 5 + j * 2 + z == 100 and z > 0:
            print(i, j, z)
            num += 1
print(num)

可以用列表推导式一行搞定:

result = [[i,j,k] for i in range(1,100//5+1) for j in range(1,100//2+1)  for k in range(1,100+1) if i * 5 + j * 2 + k == 100]

for r in result: print(*r)

print(len(result))

对,简化一下:

num = 0
for i in range(1,100//5):
    for j in range(1,100//2):
        z = 100 - (i*5 + j*2)        
        if z > 0:
            print(i, j, z)
            num += 1
print(num)

完全正确的,思路也正确
求关注