/**
     * 进制转换
     * @param M int整型 给定整数
     * @param N int整型 转换到的进制
     * @return string字符串
     */
    public String solve (int M, int N) {
        boolean positive = true;
        if(M < 0) {
            positive = false;
            M = Math.abs(M);
        }
        String[] chars = {"1", "2", "3", "4", "5", "6", "7","8", "9","10", "A", "B","C", "D","E","F"};
        // write code here
        StringBuilder buffer = new StringBuilder("");
        if(N == 10) {
            return String.valueOf(M);
        }
        LinkedHashMap<Integer, Integer> map = new LinkedHashMap<>();
        int max = 0;
        while(M > 0) {
            int num = 0;
            int cur = M;
            while(cur >= Math.pow(N, num)) {
                num ++;
            }
            if(num > 1) {
                int d = M / (int) Math.pow(N, num - 1);
                M = M - d * ((int) Math.pow(N, num - 1));
                map.put(num - 1, d);
                max = Math.max(max, num - 1);
            } else {
                map.put(num - 1, M);
                break;
            }
        }
        /**
         * key: 位置
         * value: 放的数据
         */
        if(!positive) {
            buffer.append("-");
        }
        for(int i = max; i >= 0; i --) {
            Integer integer = map.get(i);
            if(integer != null) {
                if(integer > 10) {
                    buffer.append(chars[integer]);
                } else {
                    buffer.append(integer);
                }
            } else {
                buffer.append("0");
            }
        }
        return buffer.toString();
        
    }