Estou construindo um robô lego gigante e preciso gerar algumas relações de engrenagem específicas usando um conjunto de engrenagens. Eu tenho muitas artes com os tamanhos comuns de artes lego: 8, 16, 24 ou 40 dentes. Escreva um programa que eu possa usar onde insira uma taxa de engrenagem e o programa me diga qual combinação de engrenagens devo usar para obter a taxa solicitada.
A taxa de entrada será especificada na entrada padrão (ou equivalente no seu idioma) com dois números inteiros separados por dois pontos. Uma proporção a:b
significa que o eixo de saída deve girar a/b
vezes mais rápido que o eixo de entrada.
A saída para saída padrão deve ser uma única linha que contém uma lista de relações de transmissão separada por espaço, na forma de x:y
onde x
é o tamanho da engrenagem no eixo de entrada e y
o tamanho da engrenagem no eixo de saída. Você deve usar o número mínimo possível de marchas para a proporção especificada. Cada um x
e y
deve ser um dos 8,16,24,40
.
exemplos:
1:5 -> 8:40
10:1 -> 40:8 16:8
9:4 -> 24:16 24:16
7:1 -> IMPOSSIBLE
7:7 ->
6:15 -> 16:40
Se a relação de transmissão desejada for impossível, imprima "IMPOSSÍVEL". Se nenhuma engrenagem for necessária, imprima a corda vazia.
Este é o código de golfe, a resposta mais curta vence.
1:5 -> 8:40
e 10:1 -> 40:8
faz sentido, mas os outros nem tanto.
1:5
significa que o eixo de saída gira 5 vezes mais devagar, e uma engrenagem de 8 dentes na entrada e uma engrenagem de 40 dentes na saída fazem isso acontecer.
10:1 -> 40:8 16:8
não o que você disse. E os outros confunde você? 9:4
é implementado fazendo 3:2
duas vezes. 3:2
é implementado usando 24:16
.
7:7
é o mesmo que 1:1
, portanto, não requer engrenagens para implementar.