##### Welcome to Subscribe On Youtube

Formatted question description: https://leetcode.ca/all/504.html

# 504. Base 7

Easy

## Description

Given an integer, return its base 7 string representation.

Example 1:

Input: 100

Output: “202”

Example 2:

Input: -7

Output: “-10”

Note: The input will be in range of [-1e7, 1e7].

## Solution

If nums is 0, simply return “0”.

Otherwise, split the sign out and deal with the absolute value of num. Each time divide num by 7 and store the remainders in the reverse order until num becomes 0. If num is negative initially, add the negative sign. Finally return the string of base 7 representation.

• class Solution {
public String convertToBase7(int num) {
if (num == 0)
return "0";
int sign = num >= 0 ? 1 : -1;
num = Math.abs(num);
StringBuffer base7 = new StringBuffer();
while (num > 0) {
int remainder = num % 7;
base7.insert(0, (char) (remainder + '0'));
num /= 7;
}
if (sign < 0)
base7.insert(0, '-');
return base7.toString();
}
}

• // OJ: https://leetcode.com/problems/base-7/
// Time: O(logN)
// Space: O(logN)
class Solution {
public:
string convertToBase7(int n) {
if (n == 0) return "0";
string ans;
bool neg = false;
if (n < 0) n = -n, neg = true;
while (n) {
ans += '0' + n % 7;
n /= 7;
}
if (neg) ans += '-';
reverse(begin(ans), end(ans));
return ans;
}
};

• class Solution:
def convertToBase7(self, num: int) -> str:
if num == 0:
return '0'
if num < 0:
return '-' + self.convertToBase7(-num)
ans = []
while num:
ans.append(str(num % 7))
num //= 7
return ''.join(ans[::-1])

############

class Solution(object):
def convertToBase7(self, num):
"""
:type num: int
:rtype: str
"""

def convertHelper(num, base):
sign = ""
if num < 0:
sign = "-"
num = abs(num)
ans = 0
unit = 1
while num:
ans += (num % base) * unit
num /= base
unit *= 10
return sign + str(ans)

return convertHelper(num, 7)


• func convertToBase7(num int) string {
if num == 0 {
return "0"
}
if num < 0 {
return "-" + convertToBase7(-num)
}
ans := []byte{}
for num != 0 {
ans = append([]byte{'0' + byte(num%7)}, ans...)
num /= 7
}
return string(ans)
}

• function convertToBase7(num: number): string {
if (num == 0) {
return '0';
}
let res = '';
const isMinus = num < 0;
if (isMinus) {
num = -num;
}
while (num != 0) {
const r = num % 7;
res = r + res;
num = (num - r) / 7;
}
return isMinus ? '-' + res : res;
}


• impl Solution {
pub fn convert_to_base7(mut num: i32) -> String {
if num == 0 {
return String::from("0");
}
let mut res = String::new();
let is_minus = num < 0;
if is_minus {
num = -num;
}
while num != 0 {
res.push_str((num % 7).to_string().as_str());
num /= 7;
}
if is_minus {
res.push('-');
}
res.chars().rev().collect()
}
}