蓝桥 Excel地址转换

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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值