YTU:1301: Excel地址转换

Description

    Excel是最常用的办公软件。每个单元格都有唯一的地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。
    
    事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。

    你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。

Input

    用户先输入一个整数n(n<100),表示接下来有n行输入数据。

    接着输入的n行数据是RC格式的Excel单元格地址表示法。

Output

 程序输出n行数据,每行是转换后的常规地址表示法。

Sample Input

3
R1C1
R65535C256
R100C100

3
R100C99
R1C255
R255C27

Sample Output

A1
IV65535
CV100

CU100
IU1
AA255

HINT

Source

AC代码:

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
using namespace std;
int j=0;
char b[100];
void fun(string s){
    int len=s.length();
    int i,sum=0,temp;
    char k,out[100];
 
    i=0;
    while(s[i++]!='C');
    while(s[i]!=NULL){
        sum+=s[i]-'\0'-48;
        sum*=10;
        i++;
    }
    sum/=10;
    int  j=0;
         while(sum)
         {
             if(sum%26==0)
             {
                 b[j++]='Z';
                 sum=sum/26-1;
             }
             else
             {
                 b[j++]=sum%26+'A'-1;
                 sum=sum/26;
             }
         }
         for(i=j-1;i>=0;i--)
             printf("%c",b[i]);
    i=1;
    while(cout<<s[i]&&s[++i]!='C');
        cout<<'\12';
}
int main(){
    int n;
    while(cin>>n){
        string s[n+1];
        for(int i=0;i<n+1;i++){
            getline(cin,s[i]);
        }
        for(int i=1;i<n+1;i++){
            fun(s[i]);
        }
        cout<<'\12';
    }
    return 0;
}

运行结果:

YTU:1301: Excel地址转换_第1张图片

你可能感兴趣的:(YTU:1301: Excel地址转换)