给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。
示例 1:
输入: num = 100
输出: "202"
示例 2:
输入: num = -7
输出: "-10"
提示:
-10^7 <= num <= 10^7
分析:
方法:模拟
7 进制就是 a0 * 7^n + a1 * 7^(n-1) + ... + an * 7^0 的形式,因此我们只需要确认最高位的 n 是多少,就能通过整除依次得到它的二进制位。
时间复杂度:O(log|n|)
空间复杂度:O(log|n|)
class Solution {
public String convertToBase7(int num) {
//num为0
if(num == 0){
return "0";
}
//结果集
StringBuilder sb = new StringBuilder();
//判断正负
if(num < 0){
num = -num;
sb.append('-');
}
//定义最高位
int hi = 1;
//获取最高位
while(hi <= num){
hi *= 7;
}
hi /= 7;
//遍历,添加结果
while(hi > 0){
sb.append(num / hi);
num %= hi;
hi /= 7;
}
return sb.toString();
}
}
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/base-7