Skip to content

Instantly share code, notes, and snippets.

@pinglunliao
Last active November 5, 2019 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pinglunliao/cb8937bb29f310e1cf62 to your computer and use it in GitHub Desktop.
Save pinglunliao/cb8937bb29f310e1cf62 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
using namespace std;
int main(){
string input;
while( getline(cin, input) )
{
stack<int> value;
stringstream strStream(input);
string token;
int inStack;
int outStack;
while( strStream >> token )
{
switch(token[0])
{
case '+':
outStack = value.top();
value.pop();
inStack = value.top();
value.pop();
inStack += outStack;
value.push(inStack);
break;
case '-':
outStack = value.top();
value.pop();
inStack = value.top();
value.pop();
inStack -= outStack;
value.push(inStack);
break;
case '*':
outStack = value.top();
value.pop();
inStack = value.top();
value.pop();
inStack *= outStack;
value.push(inStack);
break;
case '/':
outStack = value.top();
value.pop();
inStack = value.top();
value.pop();
inStack /= outStack;
value.push(inStack);
break;
case '%':
outStack = value.top();
value.pop();
inStack = value.top();
value.pop();
inStack %= outStack;
value.push(inStack);
break;
default:
inStack = atol(token.c_str());
value.push(inStack);
break;
}
}
inStack = value.top();
cout << inStack << endl;
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment