使用限制集找到与目标金额相加的硬币

时间:2012-03-11 02:28:37

标签: dynamic-programming coin-change

给定总金额1.15 Rs.(1卢比= 100 Paise),总共115个paise并给出8 coins列表,其面额为{1, 2, 5, 10, 20, 25, 50, 100} paise。找到总和为1.15卢比的6 coins。限制是我不应该从我的解决方案中为限制集中给出的金额提供更改。这里的限制集是{5, 10, 20, 25}

欣赏任何解决方案或指示。

1 个答案:

答案 0 :(得分:1)

这是你在找什么?

import java.util.Arrays;
public class Coining {

public static void getChange(int amount, int[] denomination){
    Arrays.sort(denomination);//sort the array
    for(int coin=denomination.length-1; coin>=0;coin--){
        int coef = amount/denomination[coin];
        amount%=denomination[coin];
        if(coef > 0)
            System.out.format("%d {%d Paise}%n",coef, denomination[coin]);
        if(amount == 0)
            return;
    }
}//

public static void main(String... args){
    //int coins[]={1,2,5,10,20,25,50,100}; THIS IS IRRELEVANT.
    int restricted[]={5,10,20,25};
    int amount = 115;
    getChange(amount,restricted);
}//
}