Hide
Problem C
Formelparser
Du ska skriva ett program som kan läsa in en formel för aritmetik, och beräkna dess värde enligt gängse regler. En formel kan ta följande form:
<Formel> ::= <Uttryck> <Operator> <Uttryck>
<Operator> ::= + | - | *
<Uttryck> ::= <Tal> | "(" <Formel> ")"
<Tal> ::= <Siffra> | <Siffra><Siffra>
<Siffra> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Input
En textsträng med en formel enligt ovan. Notera att alla komponenter skiljs åt med mellanslag, se exemplen nedan. Ingen formel är mer än $10\, 000$ tecken lång.
Output
Ett heltal. Inga svar är större än att de ryms i datatypen long.
| Sample Input 1 | Sample Output 1 |
|---|---|
2 + ( 3 * ( ( 4 - 2 ) * ( 3 * 2 ) ) ) |
38 |
| Sample Input 2 | Sample Output 2 |
|---|---|
2 + ( ( ( 23 - 32 ) + ( 99 + 2 ) ) * ( 23 - 12 ) ) |
1014 |
| Sample Input 3 | Sample Output 3 |
|---|---|
2 - ( 3 * ( ( 24 - 22 ) * ( 3 * 2 ) ) ) |
-34 |
