题目描述:
解题思路:
直接从50元开始尝试,然后尝试10元,再然后5元,再然后一元。
然后处理小数部分。
解题代码:
import java.util.Scanner;
public class Main3 {
public static void main(String[] args) {
int[] l = {50, 10, 5, 1};//只有这四种钱吧(没有20元,也没有两元)
int[] res = new int[l.length];
Scanner in = new Scanner(System.in);
String input1 = in.nextLine().trim();
double i1 = Double.valueOf(input1.split(" ")[0]);
double i2 = Double.valueOf(input1.split(" ")[1]);
String input = String.valueOf(i2 - i1);
int n, m;
n = Integer.valueOf(input.split("\\.")[0]);
if (input.contains(".")) {
m = Integer.valueOf(input.split("\\.")[1]);
} else {
m = 0;
}
for (int i = 0; i < l.length; i++) {
if (n / l[i] != 0) {
res[i] = n / l[i];
n = n % l[i];
}
}
StringBuilder s1 = new StringBuilder();
s1.append(input).append(" ");
for (int i = 0; i < l.length; i++) {
if (res[i] != 0) {
s1.append(l[i]).append(":").append(res[i]).append(";");
}
}
if (m > 5) {
s1.append("0.5:1;").append("0.1:").append(m - 5).append(";");
} else if (m == 5) {
s1.append("0.5:1;");
} else if (m < 5 && m > 0) {
s1.append("0.1:").append(m).append(";");
}
System.out.println(s1);
}
}