Сбалансированные базы:
Сбалансированные основания, по существу, такие же, как нормальные основания, за исключением того, что цифры могут быть положительными или отрицательными, в то время как в нормальных основаниях цифры могут быть только положительными.
С этого момента сбалансированные основания базы b
могут быть представлены как balb
- так сбалансированное основание 4 = bal4
.
В определении этого задания диапазон цифр в сбалансированной базе b
от, -(k - 1)
до b - k
, где
k = ceil(b/2)
Примеры диапазона цифр в различных сбалансированных базах:
bal10:
k = ceil(10/2) = 5
range = -(5 - 1) to 10 - 5 = -4 to 5
= -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
bal5:
k = ceil(5/2) = 3
range = -(3 - 1) to 5 - 3 = -2 to 2
= -2, -1, 0, 1, 2
Представления чисел в сбалансированных базах в основном такие же, как нормальные базы. Например, представление числа 27
(основание 10) в bal4
(сбалансированное основание 4) 2 -1 -1
, потому что
2 -1 -1 (bal4)
= 2 * 4^2 + -1 * 4 + -1 * 1
= 32 + (-4) + (-1)
= 27 (base 10)
Задача:
Ваша задача, учитывая три входа:
- число для преобразования (
n
)- этот ввод может быть гибким, см. «Гибкость ввода / вывода»
- база, которая
n
в данный момент находится в (b
) - база, которая
n
должна быть преобразована в (c
)
Где 2 < b, c < 1,000
.
Вернуть число в сбалансированном базовом c
представлении n
. Выход также может быть гибким.
Программа / функция должна определять длину самого n
входа.
Гибкость ввода / вывода:
Ваш вход n
и выход может быть представлен следующими способами:
- определение массива на вашем языке
- строка с любым символом в качестве разделителя (например, пробелы, запятые)
Примеры:
Обратите внимание, что они используют массив Python как n
и вывод. Вы можете использовать любой язык, который соответствует вашему языку, если он соответствует определению «Гибкость ввода / вывода».
[2, -1, -1] 4 7 = [1, -3, -1]
[1, 2, 3, 4] 9 5 = [1, 2, 2, -1, 2]
[10, -9, 10] 20 5 = [1, 1, 1, -2, 1, 0]
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
[1,1,1,-2,1,0]