CodeForces 1B Spreadsheets(模拟)
题意:将字母串+数字的格式与R+数字+C+数字的格式相互转换,每种格式均用来表示行列数;
思路:模拟;
#include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; int t,n,m; string s; char a[500010]; int main() { int i,j,k,temp,len,num; scanf("%d",&t); while(t--) { cin>>s; len=s.length(); temp=s.find('C');num=0; if(s[0]=='R'&&s[1]>='0'&&s[1]<='9'&&temp>0){ for(i=temp+1;i<len;i++){ num=num*10+(s[i]-'0'); } j=0; while(num){ if(num%26==0){ a[j]=(char)'Z'; num--; } else{ a[j]=(char)(num%26+'A'-1); } num/=26; j++; } for(i=j-1;i>=0;i--) printf("%c",a[i]); cout<<s.substr(1,temp-1)<<endl; } else{ for(i=0;i<len;i++){ if(s[i]>='0'&&s[i]<='9'){ temp=i;break; } } for(i=0;i<temp;i++){ num=num*26+(s[i]-'A'+1); } cout<<'R'<<s.substr(temp)<<'C'<<num<<endl; } } return 0; }
有些梦想现在不去实现,以后就再也没机会了!!