题目
题目来源:力扣(LeetCode)
给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。
示例 1:
输入: num = 100
输出: “202”
示例 2:
输入: num = -7
输出: “-10”
思路分析
10 进制转化任意进制的思路都是除 x 取余,其中 x 为进制数,比如 2 进制就是 除 2 取余,7 进制就是除 7 取余。
比如一个数 4321 ,需要转化为 7 进制。那么可以:
先将 4321 除以 7,其中余数为 0 , 除数为 616
继续将 616 采用同样的方法直到小于 7
将此过冲的余数反序就是答案了。图解:
(图片来自网络)
如图,4312 的 7 进制就是 15400。
关键点
除 x 取余,并逆序输出
/**
* @param {number} num
* @return {string}
*/
var convertToBase7 = function (num) {
let next = Math.abs(num)
let res = ''
while (next >= 7) {
res = next % 7 + res
next = next / 7 | 0
}
res = next + res
return num < 0 ? '-' + res : res
};