所以我已经解决了换硬币的问题,我了解它是如何工作的,但我似乎不知道如何打印出每枚硬币使用了多少。例如,数量为12,硬币数组为1、5和10,我希望输出如下:
Penny. Nickel. Dime
12. 0. 0
7. 1. 0
2. 2. 0
2. 0. 1
我该怎么把它打印出来呢?我现在的代码是:
public class codingChallenge {
public static void main(String[] args) {
int [] coinsArray = {1, 5, 10};
System.out.println(change(12, coinsArray));
}
public static int change(int amount, int[] coins){
int[] combinations = new int[amount + 1];
combinations[0] = 1;
for(int coin : coins){
for(int i = 1; i < combinations.length; i++){
if(i >= coin){
combinations[i] += combinations[i - coin];
System.out.println(coin);
}
}
System.out.println();
}
return combinations[amount];
}
}
非常感谢您的帮助。谢谢!
1条答案
按热度按时间q9yhzks01#
假设你有一个类似于下面的硬币排列的集合
然后您可以通过调用
printPermutations
:这显然是假设排列中包含了标题中相同硬币的值。你可以介绍一个
Coin
类或枚举并使用Map<Coin, Integer>
而不是List<Integer>
使解决方案更加灵活,但概念将保持不变。