Base 7

easy math

Problem

Given an integer num, return its base-7 representation as a string.

Inputnum = 100
Output"202"
100 = 2·49 + 0·7 + 2 → digits 2, 0, 2.

def convert_to_base7(num):
    if num == 0:
        return "0"
    sign = "-" if num < 0 else ""
    n, digits = abs(num), []
    while n:
        digits.append(str(n % 7))
        n //= 7
    return sign + "".join(reversed(digits))
function convertToBase7(num) {
  if (num === 0) return "0";
  const sign = num < 0 ? "-" : "";
  let n = Math.abs(num);
  const digits = [];
  while (n) {
    digits.push(n % 7);
    n = Math.floor(n / 7);
  }
  return sign + digits.reverse().join("");
}
class Solution {
    public String convertToBase7(int num) {
        if (num == 0) return "0";
        StringBuilder sb = new StringBuilder();
        boolean neg = num < 0;
        int n = Math.abs(num);
        while (n > 0) {
            sb.append(n % 7);
            n /= 7;
        }
        if (neg) sb.append('-');
        return sb.reverse().toString();
    }
}
string convertToBase7(int num) {
    if (num == 0) return "0";
    bool neg = num < 0;
    int n = abs(num);
    string s;
    while (n > 0) {
        s += char('0' + n % 7);
        n /= 7;
    }
    if (neg) s += '-';
    reverse(s.begin(), s.end());
    return s;
}
Time: O(log|n|) Space: O(log|n|)