Cod sursa(job #3129822)
Utilizator | Data | 15 mai 2023 21:55:52 | |
---|---|---|---|
Problema | Evaluarea unei expresii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.92 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100001];
int i;
int I();
int II();
int III();
int main()
{
f>>s;
i=0;
g<<I();
return 0;
}
int I()
{
int r=II();
while(s[i]=='+'||s[i]=='-')
{
i++;
if(s[i-1]=='+')
r=r+II();
else
r=r-II();
}
return r;
}
int II()
{
int r=III();
while(s[i]=='*'||s[i]=='/')
{
i++;
if(s[i-1]=='*')
r=r*III();
else
r=r/III();
}
return r;
}
int III()
{
int r=0;
if(s[i]=='(')
{
i++;
r=I();
i++;
}
else
{
while(s[i]>='0'&&s[i]<='9')
{
r=r*10+(s[i]-'0');
i++;
}
}
return r;
}