如何制作分钱币的功能?

时间:2015-09-11 01:27:59

标签: java

是的,所以我试图用一台机器正在分配的分数来制作硬币分配器。现在我制作了一个以美分为单位的构造函数,然后我为分配的硬币制作了一个函数,但我不知道如何制作它以便分配最大的硬币。

public class Coin {

    private int amount;

    public Coin(int change){
        amount = change;
    }

    public void dispenseCoin(){
        int quarter = 25;
        int dime = 10;
        int nickel = 5;
        int penny = 1;
    }

}

1 个答案:

答案 0 :(得分:1)

我会使用enum作为硬币值。

然后你可以用两个简单的循环来解决它:

    import java.util.ArrayList;
    import java.util.List;

    enum CoinValue {
        QUARTER(25), DIME(10), NICKEL(5), PENNY(1);
        int value;
        CoinValue(int value) {
            this.value = value;
        }
        int getValue() {
            return value;
        }
    }

    public class Coin {

        private int amount;

        public Coin(int change){
            amount = change;
        }

        public List<CoinValue> dispenseCoin(){
            List<CoinValue> results = new ArrayList<CoinValue>();
            for (CoinValue coin : CoinValue.values()) {
                while (coin.getValue() <= amount) {
                    results.add(coin);
                    amount -= coin.getValue();
                }
            }
            return results;
        }

        public static void main(String[] args) {
            Coin c = new Coin(41);
            System.out.println(c.dispenseCoin());
        }
    }