¿Por qué un simulador?
Los niños en estos días no tienen el tiempo ni la ambición de ir a apilar cajas en el balancín o jugar con objetos físicos equilibrados. ¡Esto deja mucho espacio en el mercado de software para un simulador de palanca que, según mis modelos, se venderá como un loco!
Ayuda de programación deseada
He presentado la patente de dicho juego (pendiente), pero necesito un programador experto para que escriba la lógica del juego. Según tengo entendido, es una práctica estándar compensar a los programadores en función del tamaño en bytes del programa final. Como tal, otorgaré este lucrativo contrato al mejor postor.
Especificación
Una palanca es una serie de cajas o espacios vacíos que se equilibra con un punto de apoyo. Cada caja tiene un peso particular de uno a nueve y los espacios no tienen peso. Como sabes, el peso de una caja en la palanca es directamente proporcional a qué tan lejos está esa caja del punto de apoyo. Una caja de peso 4
que se encuentra en el tercer espacio desde el punto de apoyo contribuirá 12
con unidades de fuerza efectivas a ese lado de la palanca.
Necesito un programa que, dada una palanca de entrada, produzca si la palanca se inclinará hacia la izquierda, la derecha o estará perfectamente equilibrada.
Pautas de E / S
- Me escribirás un programa.
- La entrada contendrá una línea de texto.
- La entrada vendrá de
stdin
o como una cadena de línea de comandos. - Las cajas serán representadas por los caracteres '
1
' a '9
'. Estos personajes representan sus respectivos pesos. Un espacio vacío será representado por un espacio ''. El punto de apoyo estará representado por un cursor '
^
'.
Una palanca de entrada de muestra podría verse así: 8 2^ 941
Esta palanca está perfectamente equilibrada: (4*8) + 0 + 0 + (1*2) == 0 + (2*9) + (3*4) + (4*1) == 34
- No habrá espacios iniciales ni finales. No habrá nueva línea final.
- No es necesario manejar entradas mal formadas, las entradas siempre tendrán exactamente un punto de apoyo, y solo números y espacios.
- La salida indicará si la palanca es pesada a la izquierda, pesada a la derecha o equilibrada.
- Su programa debe tener exactamente 3 salidas posibles que podrían resultar de una entrada bien formada. Puedes elegir cuáles son.
- La salida debe imprimirse
stdout
o ser el código de retorno del programa.
Casos de prueba
Aquí, he utilizado L
, R
, B
en el sentido de pesado izquierda, derecha-pesado, equilibrado:
Entrada:
11 ^9
Salida:B
Entrada:
321^ 12
Salida:L
Entrada:
9^ 1
Salida:R
(Si alguien tiene algunos casos de prueba "más complicados", no dude en editarlos).
Bibliografía
No necesariamente inspirado, pero relacionado con Balancear un conjunto de pesas en un balancín
^16
, 16^
o ^
? (Suponga que puede)
The output must either be print to stdout or be the return code of the program.
Bueno, ahora me estás pidiendo que haga una distribución de Linux que utiliza la notación de sube y baja para los códigos de salida.