如何打印最小金额的硬币?

时间:2019-05-29 21:03:24

标签: c dynamic

我刚收到我的作业以度过整个学年。

我收到的问题是找零问题,听起来像是:找零问题:如何用给定面额的硬币最少的钱来赚钱?实现两种解决该问题的算法。

我制作了一个程序,该程序仅列出了最小数量的硬币,但是我不知道要进行写操作,硬币和使用了多少次:对于货币总和= 12,硬币数量= 3,硬币设置= 1,5,10,它写3,我想列出3和1个10个硬币,2个1个硬币;

int changemaking( int coin[] , int number_of_coins , int sum )
{
    int i,j,added1,added2;
    int  matrix[number_of_coins+1][sum+1];
    for(j=0;j<=sum;j++)
        matrix[0][j]= 10000;
    for(i=1;i<=number_of_coins;i++)
        matrix[i][0]=0;
    for(i=1;i<=number_of_coins;i++)
    {
        for(j=1;j<=sum;j++)
            if(j>=coin[i-1])
            {
                added1=matrix[i-1][j];
                added2=1+matrix[i][j-coin[i-1]];
                matrix[i][j]= minimum(added1,added2);
            }
            else
                matrix[i][j]=matrix[i-1][j];
    }
    return matrix[number_of_coins][sum];
}

0 个答案:

没有答案