tło
Zostałeś niedawno zatrudniony przez małą firmę księgową. Świat rachunkowości jest dla Ciebie nieco obcy, więc nie masz pewności, czy przestrzegasz wszystkich profesjonalnych wskazówek. W szczególności nie wiesz, kiedy powinieneś zaokrąglić wszystkie te liczby i w jakim kierunku, więc przez większość czasu po prostu je przeskakujesz i masz nadzieję na najlepsze.
Wejście
Twój wkład jest pojedynczym ciągiem, który reprezentuje proste obliczenie. Zawiera pewną liczbę nieujemnych liczb całkowitych rozdzielonych znakami +-*/
. Ciąg jest odczytywany od lewej do prawej, a normalne reguły pierwszeństwa są ignorowane, co "23+1*3/4"
oznacza „zacznij od 23, dodaj 1, pomnóż przez 3 i podziel przez 4”, co daje wynik 18. Wartość wejściowa nie będzie zawierać liczb rozpoczynających się od 0
(oprócz 0
siebie), ani dzielenie przez zero.
Wynik
Na każdym etapie obliczeń można zaokrąglić wynik w górę lub w dół do najbliższej liczby całkowitej lub zachować go bez zmian. Na koniec zaokrąglasz w górę lub w dół, aby uzyskać wynik w postaci liczby całkowitej. Twoje dane wyjściowe to lista liczb całkowitych, które mogą wynikać z takiego obliczenia, posortowane i bez duplikatów.
Zasady
Możesz napisać pełny program lub funkcję. Wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
"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
, który może się nie powieść, jeśli użyjesz liczb zmiennoprzecinkowych.