在Java中有没有一种更简单、更容易的计算面额的方法?
二等兵1、50、10、5在Java中有没有一种更简单、更容易的计算面额的方法?,java,Java,二等兵1、50、10、5 private void calDenomination() { int myCoins = 1250; while(myCoins >= 100) { myCoins -= 100; dollar1 += 1; } while(myCoins >= 50) { myCoins -= 50; cent50 += 1;
private void calDenomination() {
int myCoins = 1250;
while(myCoins >= 100) {
myCoins -= 100;
dollar1 += 1;
}
while(myCoins >= 50) {
myCoins -= 50;
cent50 += 1;
}
while(myCoins >= 10) {
myCoins -= 10;
cent10 += 1;
}
while(myCoins >= 5) {
myCoins -= 5;
cent5 += 1;
}
}
有没有较短的方法可以做到这一点?我正试图编写一个程序来检查整数硬币(美分)中有多少面额硬币
该计划的目标应该是尽可能多地提供价值较高的硬币,总硬币总是可以被5整除(1250%5=0)整数除法舍入和数组(/和[])是这一点的关键。让硬币[0]代表美元,硬币[1]为50摄氏度等。然后使用硬币[0]=myCoins/100确定美元的确切数量,如下所示(注意,这些变量不能在其范围之外引用,您也可以删除所有System.out.printf()行): 或
我们可以保留一个硬币面额数组并对其进行迭代,并保留一个映射以保持面额作为键,保留硬币数量作为值,然后在每次迭代中可以将值与面额相除,并将值放入映射中,并使用余数运算符减少值,以便下一次迭代可以使用。感谢您的建议,但这一次的结果似乎并不准确。如果myCoins中有十个硬币,那么产品应该只有一个,10美分,而不是一个,10美分和一个,5美分。不客气,金格明,我修正了错误,这样可以最大化硬币的价值。如果你输入1250美分,因为其中的值被拆分为12美元硬币和150美分,如果你输入165美分,则正好是每种硬币中的一种。祝你的项目好运!美好的正如我在你的代码中发现问题一样,你找到了一个解决方案。非常感谢你!祝你一切顺利,布莱斯。
public class Example
{
public static void main(String[] args) {
calDenomination(1250);
}
private static void calDenomination(int myCoins) {
System.out.printf("%d cents becomes...\n", myCoins);
int[] coins;
coins = new int [4];
coins[0] = 1250/100;
System.out.printf("%d : Dollar coins\n", coins[0]);
myCoins = myCoins - coins[0] * 100;
coins[1] = myCoins/50;
System.out.printf("%d : 50c coins\n", coins[1]);
myCoins = myCoins - coins[1] * 50;
coins[2] = myCoins/10;
System.out.printf("%d : 10c coins\n", coins[2]);
myCoins = myCoins - coins[2] * 10;
coins[3] = myCoins/5;
System.out.printf("%d : 5c coins", coins[3]);
myCoins = myCoins - coins[3] * 5;
}
}
public class Example
{
public static void main(String[] args) {
calDenomination(1250);
}
private static void calDenomination(int myCoins) {
int[] coins;
coins = new int [4];
coins[0] = 1250/100;
myCoins = myCoins - coins[0] * 100;
coins[1] = myCoins/50;
myCoins = myCoins - coins[1] * 50;
coins[2] = myCoins/10;
myCoins = myCoins - coins[2] * 10;
coins[3] = myCoins/5;
myCoins = myCoins - coins[3] * 5;
}
}