解题思路:可以用栈来存储每次的余数;也可直接用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); } }