我知道我的问题重复了,但我仍然不明白其他答案在解释什么。下面是我的代码,我已经计算出它可以到达第一行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");
}
}
答案 0 :(得分:4)
您的操作顺序是向后的。
首先要做的是计算您拥有多少便士。由于一分钱的字面价值为1,因此您可以有57分钱,并可以得到$ 0.57的罚款。显然这不是您想要完成的。
您要做的是从您的最高面额开始计数,然后倒退。这是一个示例。
// This should be the first operation
int totalQuarters = cents / quarter;
cents %= quarter;
我将其余部分作为练习留给读者练习,但是一旦成功重新排序,输出就变得正确了。
2 pennies + 1 nickels + 0 dimes + 2 quarters