我的函数 ReturnChange 应该接受零钱,硬币数组 (int Coins[] = {100, 50, 20, 10, 5};) ps 它们以美分为单位,而 numCoins 数组 (int NumCoins[] = {10, 10 , 10, 10, 10};) 并计算变化。找零应该是硬币。如果硬币完成,即 num 个硬币,则必须使用替代硬币。
private static int ReturnChange(double change, int[] Coins, int[] numCoins) {
int i = 0;
int totalcoins = 0;
change = change * 100;
do {
totalcoins++;
change -= 100;
} while (change >= 100);
System.out.println("1 dollar x " + totalcoins + "");
i++;
int coinsfifty = 0;
do {
coinsfifty++;
change -= 50;
} while (change >= 50);
System.out.println("50 cents x " + coinsfifty + "");
i++;
int coinstwenty = 0;
do {
coinstwenty++;
change -= 20;
} while (change >= 20);
System.out.println("20 cent x " + coinstwenty + "");
i++;
int coinsten = 0;
do {
coinsten++;
change -= 10;
} while (change >= 10);
System.out.println("10 cent x " + coinsten + "");
i++;
int coinsfive = 0;
do {
coinsfive++;
change -= 5;
} while (change >= 5);
System.out.println("5 cent x " + coinsfive + "");
return 0;
}
当 4 作为更改传递时的输出是:
1 美元 x 4
50 美分 x 1
20 美分 x 1
10 美分 x 1
5 美分 x 1
以 2.5 为例时的输出变化:
1 美元 x 2
50 美分 x 1
20 美分 x 1
10 美分 x 1
5 美分 x 1
问题:需要其他,例如 50 美分等在输出 1 中显示零,并在输出 2 中显示 0 表示 20 美分以上,而不是一。