在Java中有没有一种更简单、更容易的计算面额的方法?

在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;

二等兵1、50、10、5

    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;
}
}