蓝桥杯:地址转换
来源:互联网 发布:mac 文件夹隐藏与显示 编辑:程序博客网 时间:2024/06/03 05:40
题目:
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
分析:
1.形如:用户先输入一个整数n(n<100),表示接下来有n行输入数据。接着输入... 可以有固定格式:cin>>n;while(--n){...}
2.把行和列从字符串中分离开来。由题目可以看出:第一个字母一定是‘R’,两个数字之间的一定是‘C’,可以利用这一点进行分离。
3.字符和数字之间的相互转换。例如:int a='5'-'0'=5; int q=3;char c='A'+q-1='C';
4.列的数字与字母之间的关系。例如:R5C255=IU5,因为255=9*26+21,而I排第9,U排第21。即 m=255/26;n=255%26;mn与5共同组成地址。
代码1:
#include<iostream>#include<cstdio>#include<string>using namespace std;int main(){int i,j,n,p,q;char a[100],b[100];cin>>n;while(n--){cin>>a;for(i=0;;i++)if(a[i]=='C') break;sscanf(a+1,"%d",&p);//p代表R后面的行号sscanf(a+i+1,"%d",&q);//q代表C后面的列号j=0;while(q){if(q%26==0)//如果正好轮完26个字母,那么后一个字母就是'Z'{b[j++]='Z';q=q/26-1;}else{b[j++]=q%26+'A'-1;q=q/26;}}for(i=j-1;i>=0;i--)cout<<b[i];cout<<p<<endl;}return 0;}
代码2:
注意:2个字符转换为整型的时候是先减‘0’再乘10,但是如果是多个的话,就需要先乘10再减‘0’。
#include<iostream>#include<stdio.h>using namespace std;int main(){int n,i,r,c;string str;int rem,q;cin>>n;while(n--){r=c=0;cin>>str;for(i=1;str[i]!='C';i++){r*=10; r+=str[i]-'0';}for(i++;str[i];i++){c*=10;c+=str[i]-'0';}rem=c%26;q=c/26;if(q){printf("%c%c%d\n",'A'+q-1,'A'+rem-1,r);} else{printf("%c%d\n",'A'+rem-1,r);}} return 0;}
- 蓝桥杯 Excel地址转换
- 蓝桥杯 地址转换
- 蓝桥杯:地址转换
- 蓝桥杯-地址格式转换
- 蓝桥杯_地址转换
- 【蓝桥杯】【Excel地址转换】
- 蓝桥杯 地址转换 解题报告
- 蓝桥杯+Excel地址格式转换
- 地址转换
- 地址转换
- 地址转换
- 地址转换
- 地址转换
- 地址转换
- 地址转换
- 地址转换
- “地址格式转换”——蓝桥杯java
- JAVA蓝桥杯(4)Excel地址转换
- mongodb MySQL命令对应
- 运用fastjson+SharedPreferences 保存、读取复杂数据
- 多维数组与指针——访问数组元素的指针表达式
- 数据结构总结(2)
- 1011 World Cup Betting
- 蓝桥杯:地址转换
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- eclipse 和android studio 导入github项目
- Struts2 数据封装机制
- patch bonding: don't use stale speed and duplex information解释
- invalid project specified
- **meaven+springmvc 开发**
- Android学习-四大组件(Service)
- ContentProvider是如何实现数据共享的。