码迷,mamicode.com
首页 > 其他好文 > 详细

YTU:1301: Excel地址转换

时间:2015-05-19 10:53:01      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

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地址转换

标签:

原文地址:http://blog.csdn.net/zp___waj/article/details/45827463

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!