Expressió completament parentitzada P45102


Statement
 

pdf   zip

thehtml

Feu un programa que llegeixi una expressió parentitzada del tot, i que escrigui el resultat d’avaluar-la. Els tres operadors possibles són suma, resta i multiplicació. Els operands són naturals entre 0 i 9 (inclosos).

Entrada

L’entrada té una expressió completament parentitzada. Això vol dir que sempre apareixen parèntesis al voltant de subexpressions que no siguin dígits. Per exemple, l’expressió 4 + 3 vindria donada així:

( 4 + 3 )

L’expressió 8 * (4 + 3) vindria donada així:

( 8 * ( 4 + 3 ) )

L’expressió (2 − 8) * (4 + 3) vindria donada així:

((2-8)*(4+3))

Sortida

Cal escriure un enter en una línia: el resultat d’avaluar l’expressió.

Pista

Fixeu-vos que una expressió o bé és directament un dígit, o bé és un parèntesi obert, seguit d’una expressió, d’un operador, d’una altra expressió, i d’un parèntesi tancat. Inspireu-vos en aquest fet per escriure un senzill programa recursiu.

Public test cases
  • Input

    9
    

    Output

    9
    
  • Input

    ( 3 + 4 )
    

    Output

    7
    
  • Input

    ( 8 * ( 4 + 3 ) )
    

    Output

    56
    
  • Input

    ( ( 2 - 8 ) * ( 4 + 3 ) )
    

    Output

    -42
    
  • Input

    ( ( 3 * 2 ) + 1 )
    

    Output

    7
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++ Java Python
    User solutions
    C++ Haskell Python