假设有几种硬币,如1、3、5,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。
#include<iostream>
#include<math.h>
#define INF 9999999
using namespace std;
int main()
{
int n;
int cost[1000];
int coin[3]={1,3,5};
cin>>n;
for(int i=1;i<=n;i++){
cost[i] = INF;
}
cost[0] = 0;
for(int i=1;i<=n;i++){
for(int j=0;j<3;j++){
if(i>=coin[j]){
cost[i] = min(cost[i],cost[i-coin[j]]+1);
}
}
}
cout<<cost[n]<<endl;
return 0;
}