题目描述
给定一个整数,将其转化为7进制,并以字符串形式输出。
-
示例 1:
输入: 100
输出: “202” -
示例 2:
输入: -7
输出: “-10”
注意: 输入范围是 [-1e7, 1e7] 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/base-7
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
正常的进制转换,不断除以7就行,留意一下0与负数(先取相反数,再在字符串头处加上“-”)即可。
代码详解
class Solution {
public String convertToBase7(int num) {
// 特殊情况0
if(num == 0) {
return "0";
}
StringBuffer sb = new StringBuffer();
boolean flag = true; // 标记正负
if(num < 0) {
flag = false;
num = -num; // 负数取反
}
// 比较传统的进制转换方式
while(num != 0) {
sb.insert(0, num % 7);
num /= 7;
}
// 负数的话在最前方加一个“-”
if(!flag) {
sb.insert(0, "-");
}
return sb.toString();
}
}
注意点
- 注意0,注意0,注意0。