Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define MAX 51
- using namespace std;
- char s[MAX],*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()
- {
- cin.get(s,MAX);
- cout<<eval();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement