这道题上来没啥思路
也读不懂题
有天听巨巨说是个栈操作
然后又放了几天
突然就把题读懂了
知道是个栈就特别简单了…
注意运算顺序就行
#include
#include
using namespace std;
typedef long long ll;
int main()
{
stack num;
string s;
cin>>s;
for(int i = 0; i < s.length(); i++)
{
if(s[i] >= '0' && s[i] <= '9')
{
int tmp = 0;
while(s[i] != '.' && s[i] != '@')
{
tmp = tmp * 10 + s[i] - '0';
i++;
}
num.push(tmp);
}
if(s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/')
{
int a = 0, b = 0;
a = num.top();
num.pop();
b = num.top();
num.pop();
if(s[i] == '+')
{
b += a;
}
else if(s[i] == '-')
{
b -= a;
}
else if(s[i] == '*')
{
b *= a;
}
else
{
b /= a;
}
num.push(b);
}
}
ll ans = 0;
ans = num.top();
cout<