Dado um número inteiro n ≥ 0, imprima-o em uma notação de base 3 não posicional, usando dígitos 139ABCDE…
e um separador de 1 caractere. Cada dígito é uma potência consecutiva de 3 e os dígitos no lado esquerdo do separador são negados, por exemplo, A931 | B → 81− (1 + 3 + 9 + 27) → 41 . Um dígito pode aparecer apenas uma vez.
Rigorosamente, permita que o valor de um dígito seja:
- seu valor se o dígito for 1, 3 ou 9
- 27 se o dígito for
A
- 3 vezes o valor do dígito logo antes dele para
B
..Z
Sua saída deve satisfazer a soma (valor dos dígitos à direita da |
) - soma (valor dos dígitos à esquerda da |
) == entrada .
Exemplos
input output
----------------
0 |
1 |1
7 3|91
730 |D1
9999 FEDC|GA9
Você pode usar um caractere diferente do espaço como separador. Também é permitido que você não tenha separador; nesse caso, o dígito maior inicia a sequência positiva. Você não precisa lidar com nada maior que 2 32 −1 ( PMIGDCBA9|RQNLH3
).
Você pode escrever um programa ou função completo, e entrada e saída podem ser fornecidas em qualquer um dos canais habituais.
Isso é código-golfe , portanto, quanto menor a sua resposta, melhor!
|
e os positivos à direita.