【每日一题】【map存值】2022年2月25日-NC112 进制转换

描述
给定一个十进制数 M ,以及需要转换的进制数 N 。将十进制数 M 转化为 N 进制数。

当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 'A' 表示此位为 10 , 'B' 表示此位为 11 。

若 M 为负数,应在结果中保留负号。

思路:map记录对应的值,key-value,如10-A

import java.util.*;
 
public class Solution {
    /**
     * 进制转换
     * @param M int整型 给定整数
     * @param N int整型 转换到的进制
     * @return string字符串
     */
     
    public String solve (int M, int N) {
        boolean isNegative = false;
        if(M < 0) {
            isNegative = true;
            M = -M;
        }
        char[] map = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        StringBuilder sb = new StringBuilder();
        int remainder = 0;
        while(M != 0) {
            sb.insert(0, map[M % N]);
            M /= N;
        }
        String res = sb.toString();
        return isNegative ? "-" + res : res;
    }
}

 

posted @ 2022-02-25 15:13  哥们要飞  阅读(16)  评论(0编辑  收藏  举报