Un control de crucero tiene 3 opciones diferentes para mover el mango y establecer la velocidad con la que desea conducir.
- Hacia usted: Agrega 1 velocidad.
- Hacia arriba: aumenta la velocidad al siguiente múltiplo de 10 (por ejemplo, 20 -> 30, 32 -> 40)
- Hacia abajo: disminuye la velocidad al siguiente múltiplo de 10 (por ejemplo, 20 -> 10, 32 -> 30)
Entrada
- 2 enteros: el primero es la velocidad de inicio y el segundo es la velocidad deseada, tanto no negativa como en la forma que desee (matriz, dos argumentos, etc.)
Tarea
- Determine la forma óptima de usar el mango para alcanzar la velocidad deseada e imprima los movimientos en el orden correcto.
Reglas
- Si tiene la opción de tirar hacia usted y hacia arriba (como de 39 a 40), puede elegir cualquiera de las opciones, pero quédese con lo que elija para casos similares
- Puede usar 3 símbolos diferentes (preferiblemente visibles) para distinguir entre los movimientos en la salida (T, U y D, por ejemplo).
- Los símbolos pueden separarse con nuevas líneas, espacios, etc., pero no es necesario que sean
Aquí hay algunos casos de prueba:
start speed, desired speed --> output
30, 40 --> U
30, 43 --> UTTT
43, 30 --> DD
51, 39 --> DDDTTTTTTTTT
29, 30 --> T or U
29, 50 --> TUU or UUU
12, 12 -->
Este es el código de golf, por lo que gana la respuesta más corta en bytes.
code-golf
arithmetic
aTastyT0ast
fuente
fuente

Respuestas:
JavaScript (ES6),
918475 bytesGuardado 4 bytes gracias a @Neil
Usos
0paraD,1paraTy2paraU.fuente
(s/10+1|0)*10 == (s/10|0)*10+10 == s-s%10+10.f(37,43)cuál era2111pero tu nuevo código vuelve111111.Java,
144139Guardado 5 bytes gracias a Kevin.
Sin golf
fuente
intvariables para10ys/10puede acortarlo en 5 bytes:void o(int s,int e){int t=10,x=s/t;System.out.print(s>e?"D":s<e?x<e/t?"U":"T":"");if(s!=e)o(s>e?x*t-(s%t<1?t:0):s<e?x<e/t?(x+1)*t:s+1:0,e);Lote, 175 bytes
Bastante sencillo esta vez. Toma la entrada como parámetros de línea de comandos, que guarda en
syd.esedredondea al múltiplo anterior de 10. Sises mayor qued, entonces obviamente debemos invocardhasta quessea menor qued. De lo contrario, debemos verificar sises menor quee; Si es así, podemos invocaruhasta que seasiguale. En este puntosestá ahora entreeydy podemos simplemente invocarthasta llegard. Miré losforbucles pero usan puntos finales inclusivos, por lo que se habrían vuelto demasiado detallados.fuente
Python, 76 bytes
fuente
min(b%10,(b-a)%99)no siempre funciona, por ejemplo(a,b)=(132,33)b:C, 156 bytes
Sin golf:
fuente