sfondo
Di recente sei stato assunto da una piccola società di contabilità. Il mondo della contabilità è in qualche modo estraneo a te, quindi non sei sicuro di seguire tutte le linee guida professionali. In particolare, non sai quando dovresti arrotondare tutti quei numeri e in quale direzione, quindi la maggior parte delle volte lo fai semplicemente e speri per il meglio.
Ingresso
Il tuo input è una singola stringa che rappresenta un semplice calcolo. Contiene un numero di numeri interi non negativi delimitati dai caratteri +-*/
. La stringa legge da sinistra a destra e le normali regole di precedenza vengono ignorate, quindi "23+1*3/4"
significa "inizia con 23, aggiungi 1, moltiplica per 3 e dividi per 4", il risultato è 18. L'input non conterrà numeri che iniziano con 0
(tranne se 0
stesso), né una divisione per zero.
Produzione
In ogni fase del calcolo, è possibile arrotondare il risultato verso l'alto o verso il basso all'intero più vicino o mantenerlo così com'è. Infine, arrotondare per eccesso o per difetto per ottenere un risultato intero. Il tuo output è l'elenco di numeri interi che possono derivare da tale calcolo, ordinati e senza duplicati.
Regole
È possibile scrivere un programma completo o una funzione. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
"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
, che potrebbe non riuscire se si utilizzano numeri in virgola mobile.