int Rev_Math( const char * string)
{
static const char * p;
p= string;
switch ( * p)
{
case '+' :
return Rev_Math( ++ p) + Rev_Math( ++ p) ;
case '-' :
return Rev_Math( ++ p) - Rev_Math( ++ p) ;
case '*' :
return Rev_Math( ++ p) * Rev_Math( ++ p) ;
case '/' :
return Rev_Math( ++ p) / Rev_Math( ++ p) ;
default :
if ( * p >= '0' && * p <= '9' )
return * p- '0' ;
return - 1 ;
}
}
aW50IFJldl9NYXRoKGNvbnN0IGNoYXIgKnN0cmluZykKewogICAgIHN0YXRpYyBjb25zdCBjaGFyICpwOwogICAgIHA9c3RyaW5nOwogICAgIHN3aXRjaCgqcCkKICAgICB7CiAgICAgICAgICBjYXNlICcrJzoKICAgICAgICAgICAgICAgcmV0dXJuIFJldl9NYXRoKCsrcCkrUmV2X01hdGgoKytwKTsKICAgICAgICAgIGNhc2UgJy0nOgogICAgICAgICAgICAgICByZXR1cm4gUmV2X01hdGgoKytwKS1SZXZfTWF0aCgrK3ApOwogICAgICAgICAgY2FzZSAnKic6CiAgICAgICAgICAgICAgIHJldHVybiBSZXZfTWF0aCgrK3ApKlJldl9NYXRoKCsrcCk7CiAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAgcmV0dXJuIFJldl9NYXRoKCsrcCkvUmV2X01hdGgoKytwKTsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgIGlmKCpwID49ICcwJyAmJiAqcCA8PSAnOScpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICpwLScwJzsKICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICAKfQ==