解题思路:可以用栈来存储每次的余数;也可直接用StringBuilder,之后用reverse()方法反转字符串。注意:M为0、负数、正数的三种情况,以及十进制以上的转化情况。例:11进制中,10用A表示。
import java.util.*;
public class Solution {
/**
* 进制转换
* @param M int整型 给定整数
* @param N int整型 转换到的进制
* @return string字符串
*/
public String solve (int M, int N) {
// write code here
Stack<Integer> s=new Stack();
if(M==0){
return "0";
}
StringBuilder str=new StringBuilder();
if(M<0){
str.append("-");
}
M=Math.abs(M);
while(M!=0){
s.push(M%N);
M=M/N;
}
int n=s.size();
for(int i=0;i<n;i++){
if(s.peek()>9){
str.append((char)(s.pop()-10+'A'));
}
else{
str.append(s.pop());
}
}
return String.valueOf(str);
}
}
京公网安备 11010502036488号