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



private int dollar1,cent50,cent10,cent5;

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(

使用数组(/和[](进行整数除法取整是实现这一点的关键。让coin[0]代表美元,coin[1]是50c等。然后使用coin[0]=myCoins/100来确定美元的确切数字,依此类推,如下所示(注意,这些变量不能在其范围之外引用,您也可以删除所有System.out.printf((行(:

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 coinsn", coins[0]);
myCoins = myCoins - coins[0] * 100;
coins[1] = myCoins/50;
System.out.printf("%d : 50c coinsn", coins[1]);
myCoins = myCoins - coins[1] * 50;
coins[2] = myCoins/10;
System.out.printf("%d : 10c coinsn", 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;
}
}

相关内容

最新更新