您的位置:首页 > 其它

蓝桥 Excel地址转换

2017-04-01 20:47 246 查看
Excel是最常用的办公软件。每个单元格都有唯一的地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。

事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。

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

【输入、输出格式要求】

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

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

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

例如:用户输入:

2

R12C4

R5C255

则程序应该输出:

D12

IU5

C26 —> Z   26%26=0 能整除得到Z 

C27->AA 27%26=1  得到A,27/26=1,得到A

C52-〉AZ 52%26=0  得到Z ,(52-1)/26=1,1%26==1   得到A 

C53->BA 53%26=1 得到A, 53/26=2   2%26==2
得到B 
#include<iostream>
#include<string.h>
#include<cstdio>
using namespace std;
int main()
{
int n,i,j,k,x,y,t1,t2;
char ch[100],str[100];
cin>>n;
getchar();
while (n--)
{
gets(str);
x=y=k=0;
for (i=1; str[i]!='C';i++)
{
x = x*10+(str[i]-'0');
}
for (j=i+1; str[j]; j++)
{
y = y*10+(str[j]-'0');
}
while (y)
{
if (y%26==0)
{
ch[k++] = 'Z';
y = (y-1)/26;
}
else
{
ch[k++] = y%26-1+'A';
y = y/26;
}
}
for (i=k-1; i>=0; i--)
{
cout<<ch[i];
}
cout<<x<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: