Tag: 硬币变化

硬币变化:动态编程

我编写的代码使用动态编程解决了基本的硬币更改问题,并提供了进行更改所需的最少硬币数量。 但是我希望将每个硬币播放部分的数量存储在最小数量中。 我要做的是初始化一个数组count[] ,就像散列一样,只要找到min ,就会增加coin[j]的数量,即count[coin[j]]++ 。 但这并不像我想要的那样工作,因为它每次找到与coin[j]相对应的min都会添加硬币。 因此,数字不是最终答案中硬币的最终计数。 这是代码: void makeChange(int coin[], int n, int value) { int i, j; int min_coin[MAX]; int min; int count[MAX]; min_coin[0] = 0; for (i=1; i <= value; i++) { min = 999; for (j = 0; j<n; j++) { if (coin[j] min_coin[i-coin[j]]+1) { min = min_coin[i-coin[j]]+1; count[coin[j]]++; } […]