七进制数

题目

给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。

示例 1:

输入: num = 100
输出: "202"

示例 2:

输入: num = -7
输出: "-10"

提示:

-10 ^ 7 <= num <= 10 ^ 7

题解

解题思路

考虑到负数的情况,先将数字转换为正数,之后每次对 7 求余,并将数字压栈。最后将栈内的数字组合成字符串,并根据传入数字是否 >= 0判断是否要给结果加上负号。

/**
 * 七进制数
 * @param {number} num
 * @return {string}
 */
export default function(num: number): string {
  const nums: number[] = []
  let _num: number = num > 0 ? num : Math.abs(num)
  while(_num >= 7) {
    nums.unshift(_num % 7)
    _num = Math.floor(_num / 7)
  }
  nums.unshift(_num)
  return `${num >= 0 ? '' : '-'}${nums.join('')}`
}
Last Updated:
Contributors: luhaifeng