import java.util.*;
public class Main {
public static void main(String[] args) {
Coin[] coins = {
new Coin("二角五分硬币", 25),
new Coin("一角硬币", 10),
new Coin("五分硬币", 5),
new Coin("一分硬币", 1)
};
LinkedList<Coin> coinMaking = makeChange(42, coins);
System.out.println("用如下硬币找零42美分:");
for (Coin coin : coinMaking) {
System.out.println(coin.name + " " + coin.count);
}
}
public static LinkedList<Coin> makeChange(int change, Coin[] coins){
LinkedList<Coin> coinMaking = new LinkedList<Coin>();
Arrays.sort(coins, new Comparator<Coin>() {
public int compare(Coin left, Coin right) {
return Double.compare(right.value, left.value);
}
});
int leftChange = change;
for (Coin coin : coins) {
if (leftChange >= coin.value) {
int coinNeed = (int) (leftChange / coin.value);
leftChange -= coinNeed * coin.value;
coinMaking.add(new Coin(coin.name, coin.value, coinNeed));
} else {
continue;
}
}
return coinMaking;
}
}
class Coin {
public String name;
public double value;
public int count;
Coin(String itemName, double value) {
this.name = itemName;
this.value = value;
this.count = 0;
}
Coin(String name, double value, int count) {
this.name = name;
this.value = value;
this.count = count;
}
}