点击此处跳转到此题 - 洛谷
或许如果你很懒,看这里也可以:

Spreadsheets

题面翻译

人们常用的电子表格软件(比如: Excel)采用如下所述的坐标系统:

第一列被标为 A,第二列为 B,以此类推,第 2626 列为 Z。接下来为由两个字母构成的列号: 第 2727 列为 AA,第 2828 列为 AB ⋯\cdots 在标为 ZZ 的列之后则由三个字母构成列号,如此类推。

行号为从 11 开始的整数。

单元格的坐标由列号和行号连接而成。比如,BC23 表示位于第 5555 列 2323 行的单元格。

有时也会采用被称为 RXCY 的坐标系统,其中 XX 与 YY 为整数,坐标 (X(X,Y)Y) 直接描述了对应单元格的位置。比如,R23C55 即为前面所述的单元格。

您的任务是编写一个程序,将所给的单元格坐标转换为另一种坐标系统下面的形式。

输入

第一行一个整数 nn (1(1 ≤\le nn ≤\le 105)10^5) 表示将会输入的坐标的数量。

接下来 nn 行,每行一个坐标。

注意: 每个坐标都是正确的。此外不会出现行号或列号大于 10610^6 的单元格。

输出 nn 行,每行一个被转换的坐标。

输出

nn 行,每行一个被转换的坐标。

样例 #1

样例输入 #1

2
R23C55
BC23

样例输出 #1

BC23
R23C55

###解题方法:函数
首先,BC23 转换到需要 R35C55

  1. 识别文字和数字
  2. 将其转换为两个 int 类型的数据,分别为X,Y
  3. 创建一个字符串,重新拼接为R+X+C+Y
    实例代码如下,实现了前两个步骤
int to_RXCY(string s)
{
    int J=1; //*单次进制X
    int JJ=1; //* 单次进制Y
    for(int i=0;i<s.length();i++)
    {
        if(J==27) J=26;
        if(s[i]>='A' && s[i]<='Z') {T+=s[i],X=X*J+(int(s[i])-64);J+=26;}
        if(s[i]>='0' && s[i]<='9') Y=Y*JJ + (int(s[i])-48),JJ*=10;
    }
}