信息学奥赛一本通python版 | 买书

学习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

猜你喜欢

转载自blog.csdn.net/guolianggsta/article/details/130902838
今日推荐