2020年聯通軟件研究院校招筆試第三題

 題目描述:

解題思路:

直接從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);

    }
}

輸出結果 

 提交

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章