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先生,我现在就解决这个问题。所以我不必为其他可能的组合运行循环?不,不需要循环。在这种情况下,这只会让事情变得更糟。我得到了完全相同的结果,但我需要其他可能的结果。