Antecedentes
Recientemente ha sido contratado por una pequeña empresa de contabilidad. El mundo de la contabilidad es algo extraño para usted, por lo que no está seguro de seguir todas las pautas profesionales. En particular, no sabes cuándo debes redondear todos esos números y en qué dirección, por lo que la mayoría de las veces simplemente lo alejas y esperas lo mejor.
Entrada
Su entrada es una sola cadena que representa un cálculo simple. Contiene cierto número de enteros no negativos delimitados por los caracteres +-*/
. La cadena se lee de izquierda a derecha y se ignoran las reglas de precedencia normales, por lo que "23+1*3/4"
significa "comenzar con 23, sumar 1, multiplicar por 3 y dividir por 4", el resultado es 18. La entrada no contendrá números que comiencen con 0
(excepto en 0
sí mismo), ni una división por cero.
Salida
En cada etapa del cálculo, puede redondear el resultado hacia arriba o hacia abajo al entero más cercano o mantenerlo como está. Finalmente, redondeas hacia arriba o hacia abajo para obtener un resultado entero. Su salida es la lista de enteros que pueden resultar de dicho cálculo, ordenados y sin duplicados.
Reglas
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
"42" -> [42]
"2+0+4-0" -> [6]
"23+1*3/4" -> [18]
"5/2" -> [2,3]
"5/2+7/3*6-1" -> [17,18,19,23]
"23/2/2*30-170/3" -> [-7,-6,-2,-1,0,1,3,4]
"1/3*2*2*2*2*2*2" -> [0,16,20,21,22,24,32,64]
"1/3*9" -> [0,3,9]
1/3*9
, que puede fallar si usa números de coma flotante.