【发布时间】:2018-03-08 18:52:21
【问题描述】:
我想将输入的整数分解为不同大小的硬币:25 美分硬币、10 美分硬币、5 美分硬币和 1 美分硬币。但我不知道该怎么处理五分钱和便士。
例如87的输入应该输出:
3 美分,1 美分,0 镍,2 便士
但我明白了:
3 美分,1 美分,1 镍,1 便士。
我希望它检查它是否是有效条目,如果不是,我希望它告诉用户再次输入它,直到它获得有效条目。
其次,如果它给出了有效的条目,我希望它再次运行程序,但一旦给出了无效的条目,我希望程序要求用户输入一个有效的条目。
我设法完成了大部分工作,但我无法弄清楚如何让用户一遍又一遍地输入另一个条目。我的代码在第二次运行后停止。
请帮忙。
下面是我的代码:
public class VendingMachineChangeCalculator {
public static void main(String[] args) {
Scanner takeit = new Scanner(System.in);
System.out.println("Enter a whole number from 1 to 99"
+ "\nI will find a combination of coins that equals"
+"the amount of change ");
int money = 0;
System.out.println("Please enter number: ");
money = takeit.nextInt();
if(money>0 && money<=99) {
System.out.println("You have: ");
int quarter, dime, nickel, penny;
quarter = money/25;
money = money %25;
dime = money/10;
money = money %10;
nickel = money/5;
money = money%5;
penny = money;
System.out.println(quarter + " quarters");
System.out.println(dime + " dimes");
System.out.println(nickel + " nickles");
System.out.println(penny + " pennies");
System.out.print("Good job, enter a new valid integer: ");
money = takeit.nextInt();
}
else {System.out.print("Invalid entry, please try again: ");
money = takeit.nextInt();
}
takeit.close();
}
}
【问题讨论】:
-
从钱中减去 25 美分和 1 美分(在执行适当的乘法之后),然后用它来计算镍和便士。镍的数量与硬币的数量无关。硬币和镍币也是如此。
-
我做了季度 = 钱/25;金钱 = 金钱 %25;一角钱=钱/10;钱=钱%10;镍=钱/5;钱=钱%5;一分钱=钱;成功了,非常感谢
-
欢迎来到 Stack Overflow!我已经编辑了您的问题以提高可读性并添加了硬币大小信息(如果没有它,非英语母语人士可能很难理解这个问题)。我希望你能得到好的答案! (另外,提示:搜索贪心算法——这是它解决的经典问题)
-
我更新了我的问题,你能看一下吗?
标签: java loops java.util.scanner