十进制数M转化为N进制数『代码模板』
进制转换
http://www.nowcoder.com/questionTerminal/2cc32b88fff94d7e8fd458b8c7b25ec1
一、代码模板
- 十进制数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; } };