本地测试正确,OJ全WA求助
查看原帖
本地测试正确,OJ全WA求助
584363
Shack8楼主2021/11/30 11:40
#include <bits/stdc++.h>
using namespace std;

int i;
char k;

int main( )
{
    cin>>i;
    string n[i][3];

    for (int j=0;j<i;j++)
    {
        for (int e=0;e<2;e++)
        {
            cin>>n[j][e];
        }
        if (n[j][0]>="a"&&n[j][0]<="c") cin>>n[j][2];
    }

    for (int j=0;j<i;j++)
    {
        if (n[j][0]=="a") k='a';
        else if (n[j][0]=="b") k='b';
        else if (n[j][0]=="c") k='c';
        else
        {
            if (k=='a')
            {
                n[j][2]=n[j][1];
                n[j][1]=n[j][0];
                n[j][0]="a";
            }        
            else if (k=='b')
            {
                n[j][2]=n[j][1];
                n[j][1]=n[j][0];
                n[j][0]="b";
            }
            else if (k=='c') 
            {
                n[j][2]=n[j][1];
                n[j][1]=n[j][0];
                n[j][0]='c';
            }
        }      

        char e=n[j][0][0];

        switch (e)
        {
            case 'a':
            {
                int num1=0,num2=0,l=n[j][1].size( )+n[j][2].size( )+2;
                for (int q=0;q<n[j][1].size( );q++)
                {
                    num1*=10;
                    num1+=n[j][1][q]-'0';
                }
                for (int q=0;q<n[j][2].size( );q++)
                {
                    num2*=10;
                    num2+=n[j][2][q]-'0';
                }
                cout<<n[j][1]<<"+"<<n[j][2]<<"="<<num1+num2<<endl;
                for (int num3=num1+num2;num3>0;num3/=10) l++;
                cout<<l<<endl;
                break;
            }
            case 'b':
            {
                int num1=0,num2=0,l=n[j][1].size( )+n[j][2].size( )+2;
                for (int q=0;q<n[j][1].size( );q++)
                {
                    num1*=10;
                    num1+=n[j][1][q]-'0';
                }
                for (int q=0;q<n[j][2].size( );q++)
                {
                    num2*=10;
                    num2+=n[j][2][q]-'0';
                }
                cout<<n[j][1]<<"-"<<n[j][2]<<"="<<num1-num2<<endl;
                for (int num3=num1-num2;num3>0;num3/=10) l++;
                cout<<l<<endl;
                break;
            }
            case 'c':
            {
                int num1=0,num2=0,l=n[j][1].size( )+n[j][2].size( )+2;
                for (int q=0;q<n[j][1].size( );q++)
                {
                    num1*=10;
                    num1+=n[j][1][q]-'0';
                }
                for (int q=0;q<n[j][2].size( );q++)
                {
                    num2*=10;
                    num2+=n[j][2][q]-'0';
                }
                cout<<n[j][1]<<"*"<<n[j][2]<<"="<<num1*num2<<endl;
                for (int num3=num1*num2;num3>0;num3/=10) l++;
                cout<<l<<endl;
                break;
            }
        }
    }

    return 0;
}

代码如上

2021/11/30 11:40
加载中...