您的位置:首页 > 其它

动态规划练习--18(买书)

2017-04-19 21:34 225 查看
题目描述:

描述
小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。

问小明有多少种买书方案?(每种书可购买多本)

输入一个整数 n,代表总共钱数。(0 <= n <= 1000)输出一个整数,代表选择方案种数样例输入
样例输入1:20

样例输入2:15

样例输入3:0

样例输出
样例输出1:2

样例输出2:0

样例输出3:0

题目理解:n元钱,三种书,求买书方案

解题思路:因为每种书可购买多本,一个非常典型的完全背包问题。

源代码:

#include<iostream>
using namespace std;
int f[1005];
int a[5];
int main()
{
a[1]=10;
a[2]=20;
a[3]=50;
a[4]=100;
int n;
cin>>n;
f[0]=1;
for(int i=1;i<=4;i++)
{
for(int j=a[i];j<=n;j++)
f[j]+=f[j-a[i]];
}
if(n==0)
cout<<"0"<<endl;
else
cout<<f[n]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: