- public class CoinsChange {
-
-
-
-
-
-
-
-
-
-
-
-
- public static void makeChange(int[] values, int valueKinds, int money,
- int[] coinsUsed) {
-
- coinsUsed[0] = 0;
-
- for (int cents = 1; cents <= money; cents++) {
-
-
- int minCoins = cents;
-
-
- for (int kind = 0; kind < valueKinds; kind++) {
-
- if (values[kind] <= cents) {
- int temp = coinsUsed[cents - values[kind]] + 1;
- if (temp < minCoins) {
- minCoins = temp;
- }
- }
- }
-
- coinsUsed[cents] = minCoins;
-
- System.out.println("面值为 " + (cents) + " 的最小硬币数 : "
- + coinsUsed[cents]);
- }
- }
-
- public static void main(String[] args) {
-
-
- int[] coinValue = new int[] { 25, 21, 10, 5, 1 };
-
- int money = 63;
-
- int[] coinsUsed = new int[money + 1];
-
- makeChange(coinValue, coinValue.length, money, coinsUsed);
- }
- }
面值为 1 的最小硬币数 : 1
面值为 2 的最小硬币数 : 2
面值为 3 的最小硬币数 : 3
面值为 4 的最小硬币数 : 4
面值为 5 的最小硬币数 : 1
面值为 6 的最小硬币数 : 2
...
...
面值为 60 的最小硬币数 : 3
面值为 61 的最小硬币数 : 4
面值为 62 的最小硬币数 : 4
面值为 63 的最小硬币数 : 3
No comments:
Post a Comment