题解
2024-07-30 16:34:01
发布于:浙江
#include <iostream>
#include <stack>
#include <cmath>
#include <cstdio>
using namespace std;
int main() {
	string s;
	int a,b,ans,y=0;
	getline(cin,s);
	stack <int > st;
	bool flag = 0;
	int p=1;
	for (int i = s.size()-1; i >= 0 ; i --) {
		if (s[i] >= '0' && s[i] <= '9') {
			y+=(s[i]-'0')*p;
			p*=10;
			flag = true;
		} else {
			if (flag) {
				st.push(y);
				y=0;
				p=1;
				flag=false;
			}
			if (s[i] == '+' ||s[i] == '-' ||s[i] == '*' ||s[i] == '/' ) {
				a = st.top();
				st.pop();
				b = st.top();
				st.pop();
				if (s[i] == '+') {
					ans = a + b;
					st.push(ans);
					ans=0;
				} else if (s[i] == '-') {
					ans = a - b;
					st.push(ans);
					ans=0;
				} else if (s[i] == '*') {
					ans = a * b;
					st.push(ans);
					ans=0;
				} else if (s[i] == '/') {
					ans = a / b;
					st.push(ans);
					ans=0;
				}
			}
		}
	}
	cout << st.top();
	return 0;
}
这里空空如也













有帮助,赞一个