换零钞问题:一张100元,换成20,10,5,1面值的零钞,每种至少一张,共有哪些换法,总计多少种换法?


 

简单分析:前提每种至少一张

20元的可以至多有4张,10元的至多可以8,5元至多13张,1元至多65张.因为for i in range(n)只进行0-(n-1),所以改起始点为1,终点为n+1,总步长即为n。

count = 0
for i in range(1, 5):
    for j in range(1, 9):
        for k in range(1, 14):
            for n in range(1, 66):
                if 20 * i + 10 * j + 5 * k + n == 100:
                    print(i, j, k, n)
                    count += 1
print(count)

输出结果

C:\Users\Admin\Desktop\python\venv\Scripts\python.exe C:/Users/Admin/Desktop/python/main.py
1 1 1 65
1 1 2 60
1 1 3 55
1 1 4 50
1 1 5 45
1 1 6 40
1 1 7 35
1 1 8 30
1 1 9 25
1 1 10 20
1 1 11 15
1 1 12 10
1 1 13 5
1 2 1 55
1 2 2 50
1 2 3 45
1 2 4 40
1 2 5 35
1 2 6 30
1 2 7 25
1 2 8 20
1 2 9 15
1 2 10 10
1 2 11 5
1 3 1 45
1 3 2 40
1 3 3 35
1 3 4 30
1 3 5 25
1 3 6 20
1 3 7 15
1 3 8 10
1 3 9 5
1 4 1 35
1 4 2 30
1 4 3 25
1 4 4 20
1 4 5 15
1 4 6 10
1 4 7 5
1 5 1 25
1 5 2 20
1 5 3 15
1 5 4 10
1 5 5 5
1 6 1 15
1 6 2 10
1 6 3 5
1 7 1 5
2 1 1 45
2 1 2 40
2 1 3 35
2 1 4 30
2 1 5 25
2 1 6 20
2 1 7 15
2 1 8 10
2 1 9 5
2 2 1 35
2 2 2 30
2 2 3 25
2 2 4 20
2 2 5 15
2 2 6 10
2 2 7 5
2 3 1 25
2 3 2 20
2 3 3 15
2 3 4 10
2 3 5 5
2 4 1 15
2 4 2 10
2 4 3 5
2 5 1 5
3 1 1 25
3 1 2 20
3 1 3 15
3 1 4 10
3 1 5 5
3 2 1 15
3 2 2 10
3 2 3 5
3 3 1 5
4 1 1 5
84

Process finished with exit code 0

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM