我知道我的问题被重复了,但我仍然无法理解其他答案的解释。下面是我的代码,我已经计算它到达第一行,即 57 pennies + 0 dimes + 0 nickels + 0 quarters
我正在考虑运行一个循环,列出所有可能的便士、一毛钱、五分镍币、二十五美分硬币的组合。但是,我不知道怎么办。
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 便士的字面值(value)为 1,因此您可以拥有 57 便士,赚到 0.57 美元就足够了。这显然不是您想要实现的目标。
您要做的就是从您的最高面额开始计数,然后倒着算。这是一个示例。
// This should be the first operation
int totalQuarters = cents / quarter;
cents %= quarter;
我将其余部分重新排序作为读者的练习,但一旦成功重新排序,输出就会变得正确。
2 pennies + 1 nickels + 0 dimes + 2 quarters
关于java - 将金钱转换成所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53230711/