504. Base 7

1. Description

Given an integer, return its base 7 string representation.

2. Example

Example 1

Input: 100
Output: “202”

Example 2

Input: -7
Output: “-10”

3. Note

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

4. Solutions

Base Conversion

n = number
Time complexity: O($log_7n$)
Space complexity: O(1)

class Solution
{
public:
    // string convertToBase7(int num)
    string convertToBase7(int number)
    {
        if(number == 0) return string("0");

        string result(number >= 0 ? "" : "-");
        number = abs(number);

        // pow function will return a double, so it will have some loss of significance
        int maxPower = 0;
        while((int)round(pow(7, maxPower)) <= number) maxPower++;

        maxPower--;
        for(int digit; maxPower >= 0; maxPower--)
        {
            digit = number / (int)round(pow(7, maxPower));

            number %= (int)round(pow(7, maxPower));
            result.push_back(digit + '0');
        }

        return result;
    }
};
Last updated:
Tags:
comments powered by Disqus