77просмотров
5.4%от подписчиков
23 марта 2026 г.
statsScore: 85
Задача: 1017. Convert to Base -2
Сложность: 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 }
} Ставь 👍 и забирай 📚 Базу знаний