1B. Spreadsheets【进制转换】
来源:互联网 发布:什么命令linux死机 编辑:程序博客网 时间:2024/06/05 01:19
进制转换是关键,一个简单的进制转换卡了一上午,真心感觉弱爆了.....
/*http://blog.csdn.net/liuke19950717*/#include<cstdio>#include<cmath>#include<cstring>#include<stack>using namespace std;typedef long long ll;const int maxn=1005;bool judge(char s[])//判断是否是声明行和列的方式{ int len=strlen(s); if(len<=2) { return 0;//没有声明行和列 } int kase=0; for(int i=0;i<len;++i) { if(s[i]>='A'&&s[i]<='Z'&&kase) { return 1; } if(s[i]>='0'&&s[i]<='9') { kase=1; } } return 0;}void slove(char s[]){int len=strlen(s);if(judge(s))//声明了行和列{int x=0,y=0,i=1;while(s[i]!='C'){ y=y*10+s[i]-'0';++i;}++i;while(i<len){x=x*10+s[i]-'0';++i;}stack<char> ans;while(x) { int tp=(x-1)%26+'A'; ans.push(tp); x=(x-1)/26; }while(!ans.empty()){printf("%c",ans.top());ans.pop();}printf("%d",y);}else{int x=0,y=0,i=0;while(s[i]>='A'&&s[i]<='Z') { y=y*26+s[i]-'A'+1; ++i; } while(i<len) { x=x*10+s[i]-'0'; ++i; } printf("R%dC%d",x,y);}printf("\n");}int main(){int t;scanf("%d",&t);while(t--){char s[maxn]={0};scanf("%s",s);slove(s);}return 0;}
0 0
- 1B. Spreadsheets【进制转换】
- codeforces 1B Spreadsheets(26进制转换)
- Spreadsheets (26进制转换)
- Codeforces 1B Spreadsheets(模拟+26进制思想)
- CODEFORCES:1B. Spreadsheets
- cf 1B. Spreadsheets
- Round #1 B. Spreadsheets
- CodeForces 1B Spreadsheets
- CodeForces - 1B Spreadsheets
- Codeforces 1B. Spreadsheets
- codeforces-1B. Spreadsheets
- cf # 1 B. Spreadsheets
- 1B. Spreadsheets
- CodeForces 1B Spreadsheets
- CodeForces#1B Spreadsheets
- 1B. Spreadsheets
- Codeforces #1 B. Spreadsheets
- 1B. Spreadsheets
- HDU 3450 线段树+二分
- BZOJ 1072: [SCOI2007]排列perm
- python使用网易云音乐 api下载mv
- 安卓学习---RecyclerView
- description语法及点语法
- 1B. Spreadsheets【进制转换】
- 3 视图分离
- GBK 编码
- 绑定到 DropDownList
- PHP框架之CakePHP学习
- HDU 1254 推箱子 (BFS套BFS)
- actionbar setDisplayOptions用法详解
- 搭建Nginx与tomcat整合,用Nginx代替apache
- Zabbix3.0安装部署最佳实践