用java 输入给定的钱数(double型),输出最少的人民币支出形式(int型)数,人民币单位假设有100元、50元、20元、10元、5元、1元、5角、1角、5分、1分。
时间: 2023-05-17 14:07:48 浏览: 92
好的,这是一个很有趣的问题!以下是一个简单的 Java 代码实现,可以实现将给定的钱数转换为最少的人民币支出形式:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double money = scanner.nextDouble();
int[] units = {10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1};
String[] names = {"100元", "50元", "20元", "10元", "5元", "1元", "5角", "1角", "5分", "1分"};
int[] counts = new int[10];
int moneyInFen = (int) (money * 100);
for (int i = 0; i < 10; i++) {
counts[i] = moneyInFen / units[i];
moneyInFen = moneyInFen % units[i];
}
for (int i = 0; i < 10; i++) {
if (counts[i] > 0) {
System.out.println(names[i] + ":" + counts[i] + "张");
}
}
}
}
```
这个程序首先读取一个 double 类型的钱数,然后将其转换为以分为单位的整数。接下来,程序使用一个数组来存储人民币的各种面值,以及一个对应的数组来存储它们的名称。程序还使用一个 counts 数组来存储每种面值的张数。接下来,程序使用一个循环来计算每种面值的张数,并将剩余的钱数存储在 moneyInFen 变量中。最后,程序使用另一个循环来输出每种面值的张数和名称。
希望这个程序能够帮助你解决问题!