硬币找零

#include<iostream>
#include<limits.h>
using namespace std;
 int n,m;
int main()
{
    cin>>n>>m;
    int value[m];
int c[m+1][n+1];
for(int i=1;i<=m;i++)
{
    cin>>value[i];
}
for(int i=1;i<=m;i++)
{
    c[i][0]=0;
}
for(int i=1;i<=n;i++)
{
    c[0][i]=INT_MAX;
}
for(int i=1;i<=m;i++)
{
    for(int j=1;j<=n;j++)
    {
        if(j<value[i])
        {
            c[i][j]=c[i-1][j];
        continue;
        }
       if(c[i-1][j]<c[i][j-value[i]]+1)
        c[i][j]=c[i-1][j];
        else
        c[i][j]=c[i][j-value[i]]+1;
    }
}
cout<<c[m][n];
}

 

posted @ 2022-03-31 15:28  九点的日落  阅读(34)  评论(0)    收藏  举报