Estoy construyendo un robot lego gigante y necesito generar algunas relaciones de engranaje particulares usando un conjunto de engranajes. Tengo muchos engranajes con los tamaños de engranajes de lego comunes: 8, 16, 24 o 40 dientes. Escriba un programa que pueda usar donde ingrese una relación de engranaje y el programa me dice qué combinación de engranajes debo usar para obtener la relación solicitada.
La relación de entrada se especificará en la entrada estándar (o el equivalente de su idioma) con dos enteros separados por dos puntos. Una relación de a:bsignifica que el eje de salida debe girar a/bveces más rápido que el eje de entrada.
La salida a la salida estándar debe ser una sola línea que contenga una lista de relaciones de engranajes separadas por espacios, en forma de x:ydónde xestá el tamaño del engranaje en el eje de entrada y yel tamaño del engranaje en el eje de salida. Debe usar el mínimo número posible de engranajes para la relación dada. Cada uno xy ydebe ser uno de 8,16,24,40.
ejemplos:
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
Si la relación de transmisión deseada es imposible, imprima "IMPOSIBLE". Si no se requieren engranajes, imprima la cadena vacía.
Este es el código de golf, gana la respuesta más corta.
1:5 -> 8:40y 10:1 -> 40:8tiene sentido pero los demás no tanto.
1:5significa que el eje de salida gira 5 veces más lento, y un engranaje de 8 dientes en la entrada y un engranaje de 40 dientes en la salida hacen que eso suceda.
10:1 -> 40:8 16:8no es lo que dijiste. ¿Qué hay de los demás que te confunde? 9:4Se implementa haciendo 3:2dos veces. 3:2se implementa usando 24:16.
7:7es lo mismo que 1:1, por lo que no requiere engranajes para implementar.