小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。
问小明有多少种买书方案?(每种书可购买多本)
输入格式
一个整数 n,代表总共钱数。
输出格式
一个整数,代表选择方案种数。
数据范围
0≤n≤1000
输入样例1:
20
输出样例1:
2
输入样例2:
15
输出样例2:
0
输入样例3:
0
输出样例3:
1
/*
完全背包问题
状态表示:f[i][j]表示选前i个物品价值为j的集合;
属性:数量;
状态计算:不选或选1,2,3,...的数量和;
初始化:F[0][0]为1,从前0个中选数为0的数量为1;
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=5200;
ll f[N];
ll A[6]={10,20,50,100};
int main()
{
ll m;
cin>>m;
f[0]=1;
for(ll i=0;i<4;i++)
{
ll x=A[i];
for(ll j=x;j<=m;j++)
f[j]+=f[j-x];
}
cout<<f[m]<<endl;
}