关键点:f[j] 到达钱数量j时的种数量
class Exchange { // [1,2,4],3,3
public:
int countWays(vector<int> penny, int n, int aim) {
// write code here
int f[1000]; // aim 小于1000
memset(f,0,sizeof(f)); f[0] = 1;
for(int i = 0;i < n;++ i)
for(int j = penny[i];j <= aim;++ j)
f[j] += f[j - penny[i]]; // 组合的钱到达j时候的种数量
return f[aim];
}