題目描述:
解題思路:
直接從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);
}
}