TUZ_3-14 Получение представления числа в сбалансированной троичной системе
3.14 Получение представления числа в сбалансированной троичной системе
Мы знаем, что в любой системе счисления с основанием r используются цифры от 0 до r – 1.
Пусть дано троичное число n = 1022. Преобразуем его в систему счисления с основанием 10:
2 × 30 + 2 × 31 + 0 × 32 + 1 × 33 = 35.
Это обычный способ преобразования троичного числа в десятичное.
Существует другой способ преобразования числа из системы счисления с основанием 3 в систему с основанием 10.
Рассмотрим следующий пример:
–1 × 30 + 0 × 31 + 1 × 32 + 1 × 33 = 35.
Второе представление называется представлением в сбалансированной троичной.
В сбалансированной троичной системе счисления используются цифры 0, 1 и –1,
тогда как в обычной троичной системе – цифры 0, 1 и 2.
В этом задании нужно найти коэффициенты при цифрах в сбалансированной троичной системе счисления.
Напишите функцию, которая принимает положительное целое число
n
и возвращает массив коэффициентов в сбалансированной тройной системе, таких, что их сумма равняется
n.
Обратите внимание, что коэффициенты в массиве должны следовать в порядке убывания их абсолютных значений,
а знак перед элементом определяет цифру (1 или –1).
В табл. 3.14 показаны ожидаемые результаты для некоторых входных данных.
Таблица 3.14. Некоторые ожидаемые результаты для задачи получения чисел в сбалансированной троичной системе |
n |
Ожидаемый результат |
25 |
[27, –3, 1] |
28 |
[27, 1] |
88 |
[81, 9, –3, 1] |
1400 |
[2187, –729, –81, 27, –3, –1] |