一、代码模板

  • 十进制数M(M>0)转化为N进制数
           while(M)
          {
              char c=mp[M%N];
              ret+=c;
              M/=N;
          }
          reverse( ret.begin(), ret.end());    //反转亦可改为『栈』

二、AC代码

map<int,char> mp;
void init()
{
    for(int i=0; i<10; ++i)
    {
        mp[i]='0'+i;
    }
    for(int i=10; i<16; ++i)
    {
        mp[i]='A'+(i-10);
    }
}

class Solution {
public:
    /**
     * 进制转换
     * @param M int整型 给定整数
     * @param N int整型 转换到的进制
     * @return string字符串
     */
    string solve(int M, int N) {
        // write code here
        int tag=0;
        if( M<0 )
        {
            tag=1;
            M=-1*M;
        }
        init();
        string ret;
        while(M)
        {
            char c=mp[M%N];
            ret+=c;
            M/=N;
        }
        if( tag )
        {
            ret+='-';
        }
        reverse( ret.begin(), ret.end());
        return ret;
    }
};