🚩传送门:牛客题目
题目
给定一个十进制数 ,以及需要转换的进制数
,将十进制数
转化为
进制数。
当
大于 10 以后, 用大写字母表示大于
10的一位如
'A'表示此位为10,'B'表示此位为11,'B'表示为15若
为负数,应在结果中保留负号
要求:空间复杂度 ,时间复杂度
解题思路:模拟
除
取余,然后逆序 。
复杂度分析
时间复杂度:
空间复杂度:
官方代码
public class Solution {public String solve (int M, int N) {if(M==0)return "0";String reference="0123456789ABCDEF";StringBuffer ans=new StringBuffer();boolean f=true;//1. 负数变正if(M<0){M=-M;f=false;}//2. 取余相除while(M!=0){ans.append(reference.charAt(M%N));M/=N;}//3. 负数加负号if(!f) ans.append("-");//4. 逆序return ans.reverse().toString();}}
