1 条题解

  • 0
    @ 2023-10-3 16:50:26
    #include<iostream>
    #include<string>
    using namespace std;
    int change(string a){//定义函数,将数字字符串转化为数字
    	int k=1,su=0;
    	for(int i=a.size()-1;i>=0;i--){
    		su+=(a[i]-'0')*k;
    		k*=10;
    	}
    	return su;
    }
    int main(){
    	string s,w;
    	int sum=0,f=1;
    	cin>>s;
    	for(int i=0;i<s.size();i++){
    		if(s[i]=='+'){//计算已读入数字,更新运算状态,清空待转换数字字符串
    			if(f) sum+=change(w);
    			else sum-=change(w);
    			f=1;
    			w="";
    		}
    		else if(s[i]=='-'){
    			if(f) sum+=change(w);
    			else sum-=change(w);
    			f=0;
    			w="";
    		}
    		else w+=s[i];//读入数字
    	}
    	if(f) sum+=change(w);//末项数字无法在循环中计算,故在循环之外追加计算
    	else sum-=change(w);
    	cout<<sum;
    }
    

    信息

    ID
    385
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    74
    已通过
    37
    上传者