第7个点T了,求助
查看原帖
第7个点T了,求助
248357
higherr123楼主2023/8/23 10:44
#include<bits/stdc++.h>
using namespace std;
int d[5]={456976,17576,676,26,1};
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin>>n;
    string s;
    for(int i=1;i<=n;i++){
        cin>>s;
        int cnt1=0,cnt2=0;
        for(int i=s.size()-1;i>=0;i--){
            if(s[i]>='A'&&s[i]<='Z'){
                cnt1=s.size()-i-1;
                break;
            }
        }
        for(int i=0;i<s.size();i++){
            if(s[i]>='A'&&s[i]<='Z')
                cnt2++;
        }
        int tmp1=1,tmp2=1,res1=0,res2=0;
        if(s.size()-cnt1==cnt2){
            //cout<<"!!!"<<endl;
            for(int i=s.size()-1;i>=s.size()-cnt1;i--){
                res1+=(s[i]-'0')*tmp1;
                tmp1*=10;
            }
            for(int i=s.size()-cnt1-1;i>=0;i--){
                res2+=(s[i]-'A'+1)*tmp2;
                tmp2*=26;
            }
            cout<<'R'<<res1<<'C'<<res2<<endl;
        }
        else{
            for(int i=s.size()-1;i>=s.size()-cnt1;i--){
                res1+=(s[i]-'0')*tmp1;
                tmp1*=10;
            }
            for(int i=s.size()-cnt1-2;i>=1;i--){
                res2+=(s[i]-'0')*tmp2;
                tmp2*=10;
            }
            while(res1){
                if(res1<=26){
                    char c;
                    c=64+res1;
                    cout<<c;
                    break;
                }
                for(int i=0;i<=3;i++){
                    if(res1/d[i]<=26&&res1/d[i]>=1&&res1%d[i]!=0&&res1-((res1/d[i])*d[i])>=d[i+1]){
                        int x=res1/d[i];
                        //cout<<res1<<' '<<x<<reendl;
                        char c;
                        c=64+x;
                        cout<<c;
                        res1-=x*d[i];
                        //cout<<res1<<endl;
                    }
                    else if(res1%d[i]==0&&res1>=d[i]){
                        //cout<<res1%d[i]<<' '<<d[i]<<endl;
                        //cout<<"!!!"<<endl;
                        int x=res1/d[i]-1;
                        char c;
                        c=64+x;
                        cout<<c;
                        res1-=x*d[i];
                    }
                }
            }
            cout<<res2<<endl;
        }
    }
    return 0;
}
2023/8/23 10:44
加载中...