问题A
题目描述
给你n个钱币,去一个不找钱的商场买东西,你可以买多少种价格的物品?
输入
第一行:一个整数n,范围在[0, 100]。
第二行:n个整数,每个数范围在[1, 100]
输出
可能买的不同价格数。(包括价格0)
样例输入
3
3 2 2
样例输出
6
提示
【样例解释】:
0,2,3,4(2+2),5(2+3),7(2+2+3)
【题目分析】
要想知道刚刚好n元可以有多少种搭配,就得知道n可以由哪几个物品得来,以及购买i元的方案数…简单来说就是上一步方案数的累加。
【AC代码】
#include<bits/stdc++.h>
using namespace std;
int n,ans;
int a[105],b[105][20005];
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
b[0][0]=1;//初始化
for(int i=1;i<=n;i++){
for(int j=0;j<10001;j++)if(b[i-1][j]!=0)b[i][j+a[i]]=1