测试样例对的,全部RE是为什么捏?

P1957 口算练习题

petrioch @ 2022-11-19 12:07:01

这里测试样例全部RE了

我下载了一组RE的样例跑本地结果还是对的???

#include<iostream>
#include<string>
#include<sstream>
#include<vector>
#include<cstring>

using namespace std;
void splite(string str,vector<string>&res, char pattern){
    istringstream is(str);
    string temp;
    while(getline(is,temp,pattern)){
        res.push_back(temp);
    }
    return ;
}

string get_ans(string op,int a,int b){
    string res="";
    if(op=="a")
        return res+to_string(a)+"+"+to_string(b) + "=" + to_string(a+b);
    if(op=="b") 
      return res+to_string(a)+"-"+to_string(b) +"="+ to_string(a-b);
    if(op=="c") 
      return res+to_string(a)+"*"+to_string(b) +"="+ to_string(a*b);
}
int getint(string s){
    int ans=0;
    for(int i=0;i<s.size();i++){
        int t=s[i]-'0';
        ans=ans*10+t;
    }
    return ans;
}
int main(){
    int n;
    cin>>n;
    string op;
    string ss;getchar();
    for(int i=0;i<n;i++){
        getline(cin,ss);
        vector<string>res;
        splite(ss,res,' ');
        if(res.size()==3){
            op = res[0];
            int x =getint(res[1]);
            int y= getint(res[2]);
            string ans=get_ans(op,x,y);
            cout<<ans<<'\n'<<ans.size()<<endl;
        }else{
            int x =getint(res[0]);
            int y= getint(res[1]);
            string ans=get_ans(op,x,y);
           cout<<ans<<'\n'<<ans.size()<<endl;
        }
    }
    return 0;
}

求大佬能解答解答\t\t\t\t\t\t


by wssb1919810 @ 2022-11-19 12:14:36

#include<bits/stdc++.h>
using namespace std;
int select(char a,int b,int c){
    int sum;
    switch(a){
        case 'a': cout<<b<<"+"<<c<<"="<<b+c<<endl;sum=b+c;break;
        case 'b': cout<<b<<"-"<<c<<"="<<b-c<<endl;sum=b-c;break;
        case 'c': cout<<b<<"*"<<c<<"="<<b*c<<endl;sum=b*c;break;
    }
    return sum;
}
int length(int a){
    int sum=0;
    if(a==0) return 1;
    while(a!=0){
        a=a/10;
        sum++;
    }
    return sum;
}
int main(){
    string a;
    char ch;
    int n,b,c,sum,l,s;
    cin>>n;
    for(int i=1;i<=n;i++){
        b=0;
        cin>>a;
        if(a[0]=='a'||a[0]=='b'||a[0]=='c'){
            ch=a[0];
            cin>>b>>c;
            sum=select(ch,b,c);
            s=length(b)+length(c)+length(sum)+2;
            if(sum<0) s++;
            cout<<s<<endl;
        }
        else{
            l=a.length();
            for(int i=0;i<l;i++) b=b*10+a[i]-'0';
            cin>>c;
            sum=select(ch,b,c);
            s=length(b)+length(c)+length(sum)+2;
            if(sum<0) s++;
            cout<<s<<endl;
            }
        }
    return 0;
}

|