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);

    }
}

输出结果 

 提交

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