用java语言编写一个完整程序,要求对程序输入一个金额,给出人民币面值组合的最佳可能
时间: 2024-09-26 09:10:26 浏览: 56
java 栈和堆,Java自动管理栈和堆
在Java中,我们可以编写一个简单的程序来模拟找零问题,给定用户输入的总金额,找出组成这个金额的最少张数的人民币组合。这里我们以最常见的五种面值(1元、5元、10元、20元、50元)为例。请注意,实际的中国货币还有更多面额,但在简化场景下,这五个已经足够。
```java
import java.util.Scanner;
public class Main {
private static final int[] COIN_VALUES = {1, 5, 10, 20, 50}; // 人民币面额
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入金额:");
double totalAmount = scanner.nextDouble();
// 检查金额是否大于0
if (totalAmount <= 0) {
System.out.println("金额无效!");
return;
}
int[] coinCounts = new int[COIN_VALUES.length];
for (int i = COIN_VALUES.length - 1; i >= 0 && totalAmount > 0; i--) {
while (totalAmount >= COIN_VALUES[i]) {
coinCounts[i]++;
totalAmount -= COIN_VALUES[i];
}
}
System.out.println("最佳的人民币面值组合为:");
for (int i = 0; i < coinCounts.length; i++) {
System.out.println(COIN_VALUES[i] + "元 x " + coinCounts[i]);
}
阅读全文