Сложность: medium
Если задано целое число n, верните двоичную строку, представляющую его в базе -2. Обратите внимание, что возвращаемая строка не должна содержать ведущих нулей, за исключением случаев, когда строка равна "0".
Пример:
Input: n = 2
Output: "110"
👨💻 Алгоритм:
1⃣Инициализация переменных:
Создайте пустую строку для хранения двоичного представления числа.
Используйте цикл для вычисления каждой цифры числа в базе -2.
2⃣Вычисление цифр:
В цикле, пока число не равно 0, вычисляйте остаток от деления числа на -2.
Если остаток отрицательный, корректируйте его, добавляя 2, и увеличивайте число на 1.
Добавляйте остаток в начало строки.
3⃣Возврат результата:
Верните строку, представляющую число в базе -2. Если строка пустая, верните "0".
😎 Решение:
class Solution {
func baseNeg2(_ n: Int) -> String {
if n == 0 {
return "0"
}
var n = n
var res = ""
while n != 0 {
var remainder = n % -2
n /= -2
if remainder < 0 {
remainder += 2
n += 1
}
res = String(remainder) + res
}
return res
}
}Ставь 👍 и забирай 📚 Базу знаний