Lei de Equilíbrio
visão global
Dada uma entrada de 3 números inteiros positivos de um dígito, representando um conjunto de pesos, produz uma representação ASCII de uma gangorra com os pesos colocados nela, para que fique em equilíbrio em torno de um pivô central, levando em consideração os efeitos da alavanca.
Cada número tem um peso igual ao seu valor. O torque de cada número é o peso multiplicado pela distância do centro em caracteres. Para a gangorra estar em equilíbrio, o torque soma dos pesos do lado esquerdo da gangorra deve ser igual a daqueles à direita, como este .
Entrada
3 números inteiros no intervalo de 1 a 9. Você pode inserir os números inteiros, no entanto, é conveniente, por exemplo, uma tupla, 3 valores separados por vírgula etc. No entanto, seu programa deve ser capaz de lidar com números introduzidos em qualquer ordem (ou seja, sem assumir que os valores serão classificados). Números duplicados podem ser introduzidos (por exemplo, 2,3,2).
As entradas sempre permitirão matematicamente uma saída válida, caso contrário, a entrada não é válida.
Saída
A saída deve ser uma representação ASCII de 2 linhas da gangorra com os pesos colocados nela. Na primeira linha estão os dígitos, espaçados para equilibrá-los na gangorra.
Os números não podem ser colocados no centro da balança, onde a distância e, portanto, o torque seriam zero. As distâncias válidas do centro variam de 1 a 10 caracteres, inclusive à esquerda ou direita do pivô.
Nos espaços desocupados pelos números, há 18 caracteres sublinhados (um sublinhado central e 10 de cada lado, menos as 3 posições ocupadas pelos números). Na última linha, há um caractere de cursor único alinhado com o centro da escala, representando o pivô.
Exemplos
Entrada:
4,7,2
Saída:
________7___42_______
^
7 * 2 = 4 * 2 + 2 * 3
Os números podem ser impressos em ambos os lados, por exemplo, isso também seria válido:
_______24___7________
^
2 * 3 + 4 * 2 = 7 * 2
Os números podem ser colocados em qualquer lugar da balança, desde que equilibrados, por exemplo:
Entrada:
3,1,5
Saída:
_____5________1__3___
^
5 * 5 = 1 * 4 + 3 * 7
ou
____5________1_____3_
^
5 * 6 = 1 * 3 + 3 * 9
ou
____5___________1_3__
^
5 * 6 = 1 * 6 + 3 * 8
etc
Seu programa precisa apenas produzir uma das saídas válidas. Não é necessário gerar um erro se a entrada não for válida.
Notas
- Isso é código-golfe, então o programa mais curto em bytes vence
- O programa pode ser autônomo ou uma função que aceita os números como entrada e retorna uma string.
- Trailing newline e espaço em branco na última linha é opcional
- Se você não sabe o que é uma gangorra , ela também é conhecida como gangorra ou gangorra.