学习Python从娃娃抓起!用python来完成信息学奥赛一本通网站的题目,记录每一个瞬间。
附上汇总贴:信息学奥赛一本通python版 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。
问小明有多少种买书方案?(每种书可购买多本)
【输入】
一个整数n,代表总共钱数。(0≤n≤1000)
【输出】
一个整数,代表选择方案种数。
【输入样例】
20
【输出样例】
2
【代码详解】
n = int(input()) #n相当于完全背包中的M
a = [0, 10, 20, 50, 100] #题目中无需输入N数量
dp = [0 for i in range(n+1)]
dp[0] = 1
for i in range(1, 4+1):
for j in range(a[i], n+1):
dp[j] = dp[j-a[i]] + dp[j]
print(dp[n])
【运行结果】
20
2