用java完成下题1. 输入一个应收金额,输入一个实收金额,显示找零的各种纸币的张数,优先考虑面额大的纸币。假如现有100元、50元、20元、10元、5元、1元的人民币面额。如果实收金额小于应收金额则报错
时间: 2024-09-27 13:13:44 浏览: 43
用友会计软件测试题(一).docx
在Java中,你可以通过创建一个方法来解决这个问题,该方法接收两个整数作为参数,一个是应收金额,另一个是实收金额。这里我们可以创建一个数组或者枚举来存储各种面额的纸币,然后按照从大到小的顺序检查是否有足够的钞票可以用于找零。以下是简单的步骤:
```java
public class Main {
public static void main(String[] args) {
int totalDue = 100; // 收款总额
int paymentReceived = 85; // 实际收到的金额
if (paymentReceived < totalDue) {
System.out.println("错误:实收金额小于应收金额");
} else {
int[] bankNotes = {100, 50, 20, 10, 5, 1}; // 面额数组
for (int note : bankNotes) {
while (paymentReceived >= note && totalDue > note) {
int count = Math.min(paymentReceived / note, totalDue / note);
System.out.printf("找回 %d 张%db的纸币\n", count, note);
paymentReceived -= note * count;
totalDue -= note * count;
}
}
}
}
}
```
在这个例子中,我们首先判断实收金额是否足够。如果是,我们就遍历面额数组,对每个面额,只要实收金额大于等于当前面额并且总差额也大于等于面额,就计算出需要找零的最大张数,并更新实际支付和收款余额。
阅读全文