10pts求助
查看原帖
10pts求助
1294496
wu_18楼主2024/10/7 11:00
#include<bits/stdc++.h>
using namespace std;
long long a[100005];

string qu0(string a)
{
	long long n; 
 	if(a.size()>=2&&a[0]=='0')
  	{  	
		n=a.size();
		for(int i=0;i<n;i++){ 	
			if(a[i]!='0') break;
			else{
				a.erase(a.begin());
				i--;
			}
		}
  	}
	return a;		
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	string s;
	getline(cin,s);
	for(int i=0;i<s.size();i++){
		if(s[i]=='*'){
			int ip=i,f1=0,f2=0;
			string s1="",s2="";
			for(int j=ip-1;j>=0;j--){
				if(isdigit(s[j])){
					s1=s[j]+s1;
				}
				else{
					f1=j;
					break;
				}
			}
			for(int j=ip+1;j<s.size();j++){
				if(isdigit(s[j])){
					s2=s2+s[j];
				}
				else{
					f2=j;
					break;
				}
			}
			string s3=to_string(stoll(s1)*stoll(s2));
			s.replace(f1+1,f2-2,s3);
		}
	} 
	//cout<<s<<'\n';
	int sum=0,cnt=1;
	string pop="";
	for(int i=0;i<=s.size();i++){
		if(isdigit(s[i])){
			pop=pop+s[i];
		}
		else{
			//cout<<pop<<" ";
			a[cnt]=stoll(pop);
			cnt++;
			pop="";
		}
	}
	for(int i=1;i<=cnt-1;i++){
		sum+=a[i];
	}
	//cout<<sum;
	string t=to_string(sum);
	if(t.size()<=4){
		cout<<t;
		return 0;
	}
	else{
		string sb="";
		for(int i=t.size();i>=t.size()-4;i--){
			sb=t[i]+sb;
		}
		cout<<qu0(sb);
	}
	return 0;
}
2024/10/7 11:00
加载中...