Musisz napisać program, który ocenia ciąg znaków, który zostałby wprowadzony do zaawansowanego kalkulatora.
Program musi zaakceptować dane wejściowe za pomocą stdin i wydać poprawną odpowiedź. W przypadku języków, które nie mają funkcji akceptujących standard, możesz przejąć funkcje readLine
i print
obsłużyć te zadania.
Wymagania:
- Nie używa żadnych funkcji „eval”
- Obsługuje liczby zmiennoprzecinkowe i liczby ujemne
- Obsługuje co najmniej operatory +, -, *, / i ^
- Obsługuje nawiasy i nawiasy do zastępowania normalnej kolejności
- Obsługuje dane wejściowe zawierające jedną lub więcej spacji między operatorami a liczbami
- Ocenia dane wejściowe przy użyciu standardowej kolejności operacji
Przypadki testowe
Wkład
10 - 3 + 2
Wydajność
9
Wkład
8 + 6 / 3 - 7 + -5 / 2.5
Wydajność
1
Wkład
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Wydajność
41
.0
koniec. Nie jestem zbyt pewny precyzji, ale im więcej, tym lepiej.
.0
na końcu są liczby końcowe, jeśli są liczbami całkowitymi? Ponadto: jak dokładny musi być kalkulator (w odniesieniu do precyzji zmiennoprzecinkowej i tym podobnych)?