B. Spreadsheets
来源:互联网 发布:知豆汽车是哪家公司的 编辑:程序博客网 时间:2024/05/17 22:05
#include<iostream>#include<cstdio>using namespace std;int main(){ string a; string b,c; int i,j; int num1; int num0; int nu; scanf("%d",&nu); int flag=0; for(int ii=0; ii<nu; ii++) { int step=0; int n=1; flag=0; num0=num1=0; cin>>a; int ii=0; while(a[ii]>='A'&&a[ii]<='Z') ++ii; for(int g=ii;g<a.size();g++) if(a[g]=='C') { flag=1;break; } if(flag==0) { int st=0; while(a[st]>='A'&&a[st]<='Z') ++st; for(i=st-1; i>=0; i--) { num0+=(a[i]-'A'+1)*n; n*=26; } for(i=st; i<a.size(); i++) { num1=num1*10+a[i]-'0'; } printf("R%dC%d\n",num1,num0); } else { for(i=1; a[i]!='C'; i++) { num0=num0*10+a[i]-'0'; } for(j=i+1; j<a.size(); j++) { num1=num1*10+a[j]-'0'; } // printf("%d %d\n",num0,num1); if(num1<=26)//有一个字母 { printf("%c%d\n",num1+'A'-1,num0); } else if(num1<=702)//有两个字母 { int aa=num1%26; if(aa==0) { aa=26; } num1-=aa; printf("%c%c%d\n",num1/26+'A'-1,aa+'A'-1,num0); } else if(num1<=18278)//有三个字母 { //1 26 676 17576 456976 11881376 int aa=num1%26; if(aa==0) aa=26; num1=num1-aa; int bb=num1%676; if(bb==0) bb=676; num1=(num1-bb)/676; bb/=26; // printf("aa=%d bb=%c num1=%d\n",aa,bb+'A'-1,num1); printf("%c%c%c%d\n",num1+'A'-1,bb+'A'-1,aa+'A'-1,num0); } else if(num1<=475254)//四位字母 { int aa=num1%26; if(aa==0) aa=26; num1=num1-aa; int bb=num1%676; if(bb==0) bb=676; num1=num1-bb; bb/=26; int cc=num1%17576; if(cc==0) cc=17576; num1-=cc; cc/=676; num1/=17576; printf("%c%c%c%c%d\n",num1+'A'-1,cc+'A'-1,bb+'A'-1,aa+'A'-1,num0); } else { int aa=num1%26; if(aa==0) aa=26; num1=num1-aa; int bb=num1%676; if(bb==0) bb=676; num1=num1-bb; bb/=26; int cc=num1%17576; if(cc==0) cc=17576; num1-=cc; cc/=676; int dd=num1%456976; if(dd==0) dd=456976; num1-=dd; dd/=17576; num1/= 456976; // printf("%d %d %d %d %d %d\n",num1,dd,cc,bb,aa,num0); printf("%c%c%c%c%c%d\n",num1+'A'-1,dd+'A'-1,cc+'A'-1,bb+'A'-1,aa+'A'-1,num0); } } } return 0;}//1 26 676 17576 456976 11881376/*t1=26;t2=728;t3=19682;t4=531440;t5=14348906;1000R621C406ABD815R3C24R634C162R695C621R875C898AHG626AFE664R95C969R21C933R629C648R253C417WQ20AGA989XO484R912C396R292C168PI999TR254PH609R207C905R762C995LL946R292C805R174C206NY237R345C125R657C212OP621R815C732X3FF634WW695AHN875//R626C891R664C837AKG95//AIW21//XX629PA253R20C615R989C859R484C639OF912FL292R999C425R254C538R609C424AHU207//ALG762//R946C324ADY292GX174R237C389DU345HD657R185C831R81C54R448C215...*/