用java完成下题输入一个应收金额,输入一个实收金额,显示找零的各种纸币的张数,优先考虑面额大的纸币。假如现有100元、50元、20元、10元、5元、1元的人民币面额。如果实收金额小于应收金额则报错。
时间: 2024-09-29 15:07:20 浏览: 35
在Java中,你可以通过编写一个程序来解决这个问题。首先,你需要创建一个函数来接收用户的输入,并检查是否满足条件(实收金额大于等于应收金额)。然后,你可以使用循环和条件判断来计算找零所需的每种面额的纸币张数。下面是一个简单的示例:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入应收金额
System.out.println("请输入应收金额:");
double dueAmount = scanner.nextDouble();
// 检查实收金额是否小于应收金额
if (dueAmount <= 0 || scanner.nextDouble() < dueAmount) {
System.out.println("错误:实收金额应大于或等于应收金额.");
return;
}
// 定义面额数组并初始化找零结果
int[] bankNotes = {100, 50, 20, 10, 5, 1};
int[] count = new int[bankNotes.length];
// 计算找零张数,从大到小的面额
for (int i = bankNotes.length - 1; i >= 0; i--) {
while (dueAmount >= bankNotes[i]) {
count[i]++;
dueAmount -= bankNotes[i];
}
}
// 输出结果
System.out.println("找零情况:");
for (int i = 0; i < bankNotes.length; i++) {
if (count[i] > 0) {
System.out.printf("%d元纸币需要%d张.\n", bankNotes[i], count[i]);
}
}
}
}
```
当你运行这个程序时,它会提示用户输入应收金额和实收金额。如果输入符合条件,就会显示出各种面额的纸币张数;如果不满足,就会打印出错误信息。
阅读全文