求调!
查看原帖
求调!
1327890
13355629950Y楼主2025/7/27 17:58
#include<bits/stdc++.h>
using namespace std;
string s;
long long q[200050],t,w,len,i,sum,f[100050],top;
long ans[100050],t2;
int main(){
	cin>>s;
	len=s.length();
	for(i=0;i<len;i++){
		if(s[i]>='0'&&s[i]<='9')
		{
			sum=sum*10+(s[i]-'0');
		}
		else
		{
			q[w]=sum;
			w++;
			sum=0;
			if(s[i]=='+')
			{
				while(top!=0)
				{
					q[w]=f[top-1];
					w++;
					top--;
				}
				f[top]=1;
				top++;
			}
			if(s[i]=='-')
			{
				while(top!=0)
				{
					q[w]=f[top-1];
					w++;
					top--;
				}
				f[top]=3;
				top++;
			}
			if(s[i]=='*')
			{
				f[top]=2;
				top++;
			}
			if(s[i]=='/')
			{
				f[top]=4;
				top++;
			}
		}
	}
	while(top!=0)
	{
		q[w]=f[top-1];
		w++;
		top--;
	}
	for(i=t;i<w;i++)
	{
		if(q[i]==1)
		{
			sum=0;
			sum+=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			sum+=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			ans[t2]=sum;
			t2++;
		}
		else if(q[i]==2)
		{
			sum=1;
			sum*=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			sum*=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			ans[t2]=sum;
			t2++;
		}
		else if(q[i]=3)
		{
			sum=0;
			sum-=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			sum-=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			ans[t2]=sum;
			t2++;
		}
//		else if(q[i]==3)
//		{
//		    sum=ans[t2-2]-ans[t2-1];
//		    ans[t2-2]=sum;
//		    t2--;
//		}
		else
		{
			sum=0;
			sum/=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			sum/=ans[t2-1];
			ans[t2-1]=0;
			t2--;
			ans[t2]=sum;
			t2++;
		}
//		else if(q[i]==4)
//		{
//		    sum=ans[t2-2]/ans[t2-1];
//		    ans[t2-2]=sum;
//		    t2--;
//		}
	}
	cout<<ans[t2-1]%10000;
}
2025/7/27 17:58
加载中...