Java 把钱转换成所有可能的组合

Java 把钱转换成所有可能的组合,java,Java,我知道我的问题重复了一遍,但我仍然不明白其他答案在解释什么。下面是我的代码,我已经计算到第一行,57便士+0一角硬币+0五分镍币+0四分之一,我想运行一个循环,列出所有可能的便士、一角硬币、五分镍币和四分之一硬币的组合。但是,我不知道怎么做 public class Conversion{ public static void main(String[] args) { int cents = 57; int quarter = 25; int dime = 10; int

我知道我的问题重复了一遍,但我仍然不明白其他答案在解释什么。下面是我的代码,我已经计算到第一行,
57便士+0一角硬币+0五分镍币+0四分之一
,我想运行一个循环,列出所有可能的便士、一角硬币、五分镍币和四分之一硬币的组合。但是,我不知道怎么做

public class Conversion{
 public static void main(String[] args) {
  int cents = 57;

  int quarter = 25;
  int dime = 10;
  int nickel = 5;
  int penny = 1;


  int totalPennies = cents / penny;
  cents %= penny;
  int totalNickels = cents / nickel;
  cents %= nickel;
  int totalDimes = cents / dime;
  cents %= dime;
  int totalQuarters = cents / quarter;
  cents %= quarter;


  System.out.print(totalPennies + " pennies + ");
  System.out.print(totalNickels + " nickels + ");
  System.out.print(totalDimes + " dimes + ");
  System.out.println(totalQuarters + " quarters");

 }
}

你的操作顺序是向后的

你要做的第一件事就是数一数你有多少便士。因为一分钱的实际价值是1,所以你可以有57分钱,加上0.57美元就可以了。这显然不是你想要完成的

你要做的是从你的最高面额开始数,然后倒数。这是一个样品

// This should be the first operation
int totalQuarters = cents / quarter;
cents %= quarter;
我把对其余部分的重新排序留给读者作为练习,但一旦成功地重新排序,输出就会变得正确

2 pennies + 1 nickels + 0 dimes + 2 quarters

你的操作顺序是向后的

你要做的第一件事就是数一数你有多少便士。因为一分钱的实际价值是1,所以你可以有57分钱,加上0.57美元就可以了。这显然不是你想要完成的

你要做的是从你的最高面额开始数,然后倒数。这是一个样品

// This should be the first operation
int totalQuarters = cents / quarter;
cents %= quarter;
我把对其余部分的重新排序留给读者作为练习,但一旦成功地重新排序,输出就会变得正确

2 pennies + 1 nickels + 0 dimes + 2 quarters

但是我如何输出所有可能的组合呢?正如我在@sara99之前所说的,您的输出是好的,但是您计算这些值的顺序不是好的。只要改变你进行这些操作的顺序就足以解决这个问题。谢谢你,Makoto先生,我现在就解决这个问题。所以我不必为其他可能的组合运行循环?不,不需要循环。在这种情况下,这只会让事情变得更糟。我得到了完全相同的输出,但我需要其他可能的结果。但是我如何输出所有可能的组合呢?正如我在@sara99之前所说的,您的输出是好的,但您计算这些值的顺序不是好的。只要改变你进行这些操作的顺序就足以解决这个问题。谢谢你,Makoto先生,我现在就解决这个问题。所以我不必为其他可能的组合运行循环?不,不需要循环。在这种情况下,这只会让事情变得更糟。我得到了完全相同的结果,但我需要其他可能的结果。