描述
输入
一个整数 n,代表总共钱数。(0 <= n <= 1000)
输出
一个整数,代表选择方案种数
样例输入
样例输出
n元全部用来买书有多少方案
分析:
背包问题 f[i]+=f[i-a[j]];注意f[0]=1;
代码:
感受: 一开始堵在了f[0]=1;没有注意就老是做不出来
小明手里有n元钱全部用来买书,书的价格为10元,20元,50
问小明有多少种买书方案?(每种书可购买多本)
样例输入1:20
样例输入2:15
样例输入3:0
样例输出1:2
样例输出2:0
样例输出3:0题意:
n元全部用来买书有多少方案
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,k,a[4]={10,20,50,100},i,j,f[1005]={0},sum;
while(cin>>n)
{
sum=0;
memset(f,0,sizeof(f));
f[0]=1;
for(i=0;i<4;i++)
for(j=a[i];j<=n;j++)
{f[j]+=f[j-a[i]];
}
cout<<f[n]<<endl;
}
}
感受: 一开始堵在了f[0]=1;没有注意就老是做不出来