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

Spreadsheets

题面翻译

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

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

行号为从 11 开始的整数。

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

有时也会采用被称为 RXCY 的坐标系统,其中 XXYY 为整数,坐标 (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;
    }
}