Cod sursa(job #293388)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 1 aprilie 2009 18:50:18
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>
using namespace std;
char s[100010],*p=s;


long long termen();
long long factor();

long long eval()

 { long long r=termen();

     while( *p=='+'||*p=='-')

         switch(*p)

           { case '+' : ++p,r+=termen(); break;
             case '-' : ++p,r-=termen(); break;
           }

   return r;

  }


long long termen()

 {

   long long r=factor();


    while( *p=='*'|| *p=='/' )

       switch(*p)

         { case '*': ++p,r*=factor(); break;
           case '/': ++p,r/=factor(); break;
         }

     return r;
 }



long long factor()

 { long long r=0;

    if(*p=='(')

      { ++p; r=eval(); ++p;}

     else

         while( *p>='0' && *p<='9' )

           {   r=r*10 + *p-'0';
              ++p;
           }

    return r;
 }

int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");

f.get(s,100005);

g<<eval();

f.close();
g.close();
return 0;
}