2013J_2:表达式求值

洛谷:P1981
OJ:P4939

代码实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**************************************************************** 
 * Description: NOIP2013 CSP-J-2  表达式求值
 * Author: Alex Li
 * Date: 2023-09-30 14:55:11
 * LastEditTime: 2024-10-09 22:52:36
****************************************************************/
#include <iostream>
#include <stack>
using namespace std;
stack <int> x;//一个存数字并在最后把它们相加的栈
int main(){
	int a,b;
	char c;
	cin>>a;//先输入一个数,以后符号+数字输入
	int m=10000;
	a=a%m;//必须的操作
	x.push(a);//压入栈中
	while(cin>>c>>b){ //ctrl+z或ctrl+d
		if(c=='*'){//将*之前的数字与*之后的数字积存入
			a=x.top();
			x.pop();
			x.push(a*b%m);
		}
		else//将b存入
			x.push(b);
	}
	a=0;
	while(x.size())	{
		a+=x.top();	
		x.pop();
	}
    	a%=m;//取模
	cout<<a<<endl;
	return 0;
}
Scroll to Top