我刚收到我的作业以度过整个学年。
我收到的问题是找零问题,听起来像是:找零问题:如何用给定面额的硬币最少的钱来赚钱?实现两种解决该问题的算法。
我制作了一个程序,该程序仅列出了最小数量的硬币,但是我不知道要进行写操作,硬币和使用了多少次:对于货币总和= 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];
}