https://leetcode.com/problems/base-7 Easy

Условие

Дано целое число num. Необходимо вернуть строковое представление этого числа в системе счисления с основанием 7.

Примеры

Input: num = 100 Output: “202”

Input: num = -7 Output: “-10”

Решение

fun convertToBase7(num: Int): String {
    if (num == 0) return "0"  // Если число равно 0, возвращаем "0"

    val isNegative = num < 0  // Проверяем, является ли число отрицательным
    var n = kotlin.math.abs(num)  // Берем модуль числа для удобства расчета
    val sb = StringBuilder()

    // Находим представление числа в системе счисления с основанием 7
    while (n > 0) {
        sb.append(n % 7)  // Добавляем остаток от деления на 7 (младший разряд)
        n /= 7  // Переходим к следующему разряду
    }

    if (isNegative) sb.append('-')  // Если число было отрицательным, добавляем минус

    return sb.reverse().toString()  // Переворачиваем строку и возвращаем результат
}

Временная сложность

O(log₇(n)), так как мы делим число на 7 на каждом шаге, что соответствует числу разрядов в системе счисления с основанием 7.

Пространственная сложность

O(log₇(n)), так как результат сохраняется в StringBuilder, содержащем представление числа в базе 7.