全WA求佬救救 样例能过 WA的点本地跑也能过
查看原帖
全WA求佬救救 样例能过 WA的点本地跑也能过
1317271
wenyuzhao楼主2024/11/18 22:47
#include <bits/stdc++.h>
using namespace std;
int weishu(int n)
{
    if(n==0)    return 1;
    int s;
    while(n!=0)
    {
        s++;
        n=n/10;
    }
    return s;
}
int main()
{
    int t;
    cin>>t;
    getchar();
    // cout<<t<<endl;
    char lastone;
    while(t--)
    {
        
        string s1;
        getline(cin,s1);
        //getchar();
        // cout<<s1<<endl<<endl;
        int len=s1.length();
        // for(int i=0;i<len;i++)
        //     cout<<s1[i];
        // cout<<endl<<endl;
        int numa=0,numb=0,ans=0;
        int sum1=0,sum2=0,sum3=0;
        int sum=0;
        int flag1;//记录是否有运算符
        if(s1[0]=='a'||s1[0]=='b'||s1[0]=='c')  //查找是否具有运算符
        {
            flag1=1;
            int j;
            for(j=2;j<len;j++)
            {
                if(s1[j]!=' ')
                {
                    numa=numa*10+(s1[j]-'0');
                    sum1++;
                }
                else
                    break;
                
            }
            //cout<<"j="<<j<<endl;
            for(int k=j+1;k<=len-1;k++)
                numb=numb*10+(s1[k]-'0');
            sum2=len-j;
        }
        else
        {
            flag1=0;
            int j;
            for(j=0;j<len;j++)
            {
                if(s1[j]!=' ')
                {
                    numa=numa*10+(s1[j]-'0');
                    sum1++;
                }
                else
                    break;
            }
            for(int k=j+1;k<=len-1;k++)
                numb=numb*10+(s1[k]-'0');
            sum2=len-j;
        }
        if(s1[0]=='a'||(lastone=='a'&&flag1==0))
        {
            lastone='a';
            ans=numa+numb;
            cout<<numa<<"+"<<numb<<'='<<ans<<endl;
            sum3=weishu(ans)-1;
        }
        else if(s1[0]=='b'||(lastone=='b'&&flag1==0))
        {
            lastone='b';
            ans=numa-numb;
            cout<<numa<<"-"<<numb<<'='<<ans<<endl;
            sum3=weishu(ans);
        }
        else if(s1[0]=='c'||(lastone=='c'&&flag1==0))
        {
            lastone='c';
            ans=numa*numb;
            cout<<numa<<"*"<<numb<<'='<<ans<<endl;
            sum3=weishu(ans)-1;
        }
        sum=sum1+sum2+2+sum3;
        cout<<sum<<endl;
    }
    return 0;
}
2024/11/18 22:47
加载中...