// 2016复旦机试第二题,后缀表达式计算.cpp : 定义控制台应用程序的入口点。
//8 3 2 6 * + 5 / - 2 2 ^ +
//8-(3+2*6)/5+2^2
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <math.h>
#include <stack>
#include <algorithm>
#include <iostream>
using namespace std;
char str[256];
int _tmain(int argc, _TCHAR* argv[])
{
scanf("%s",str);
int len = strlen(str);
stack<int> s;
for(int i = 0;i<len;i++){
if(str[i]>='0' && str[i] <= '9'){
s.push(str[i] - '0');
}else{
int m = s.top(); s.pop();
int n = s.top(); s.pop();
char c = str[i];
switch(c){
case '+': {
s.push(m + n);
break;}
case '-':{
s.push(n-m);
break;
}
case '*':{
s.push(n*m);
break;
}
case '/':{
s.push(n/m);
break;
}
case '^':{
s.push((int)pow(n*1.0,m));
break;
}
}
}
}
int x = s.top();
printf("%d\n",x);
system("pause");
return 0;
}
;