10分求调
查看原帖
10分求调
1029978
zyh1145楼主2023/10/3 09:22

样例也过了

#include <bits/stdc++.h>
using namespace std;
stack <int> stk; 
string s;
long long int last,x,p,sum;
bool cheng;
int main()
{
	cin>>s;
	for (int i = 0;i < s.length();i++)
	{
		if (!('0' <= s[i] && s[i] <= '9'))
		{
			x = 0;
			while (last != i)
			{
				x *= 10;
				x += s[last] - '0';
				last++;
			}
			last++;
			if (cheng)
			{
				p = stk.top() * x % 10000;
				stk.pop();
				stk.push(p);
				cheng = 0;
				//cout<<"stkpushp"<<p<<'\n';
				continue;
			}
			if (s[i] == '*')
			{
				cheng = 1;
			}
			stk.push(x);
			//cout<<"stkpushx"<<x<<'\n';
		}
	}
	x = 0;
	while (last != s.length())
	{
		x *= 10;
		x += s[last] - '0';
		last++;
	}
	if (cheng)
	{
		p = stk.top() * x % 10000;
		stk.pop();
		stk.push(p);
		//cout<<"stkpushp"<<p<<'\n';
	}
	else
	{
		stk.push(x);
		//cout<<"stkpushx"<<x<<'\n';
	}
	while (stk.size())
	{
		sum += stk.top();
		stk.pop();
		sum %= 10000;
	}
	cout<<sum;
    return 0;
}
2023/10/3 09:22
加载中...