https://leetcode.com/problems/base-7 | Easy |
---|
Дано целое число num. Необходимо вернуть строковое представление этого числа в системе счисления с основанием 7.
Input:
num = 100Output:
“202”
Input:
num = -7Output:
“-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.