zzuli303(奇葩26进制转换)
序号互换
- 描述
 - 
Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来。单元格的行坐标是由数字编号的数字序号,而列坐标使用字母序号。观察字母序号,发现第1列到第26列的字母序号分别为A,B,…,Z,接着,第27列序号为AA,第28列为AB,依此类推。
若给Dr.Kong的机器人卡多一个数字序号(比如32),它能很快算出等价的字母序号(即AF),若给机器人一个字母序号(比如AA)),它也能很快算出等价的数字序号(27),你能不能与卡多比试比试,看谁能算得更快更准确。
 
- 输入
 - 第一行: N 表示有多少组测试数据。 
接下来有N行, 每行或者是一个正整数,或者是一个仅由大写字母组成的字符串。
输入保证,所有数字序号和字母序号对应的数字序号均 ≤ 2*10^9 - 输出
 - 对于每一行测试数据,输出一行。如果输入为一个正整数序号,则输出等价的字母序号;如果输入为字符串,则输出等价的数字序号。
 - 样例输入
 - 
3
27
G
AA - 样例输出
 - 
AA
7
27 - 来源
 - 第四届河南省程序设计大赛
 
先搞清楚这到底是什么进制,可以理解为26进制但是可以出现’26‘这个数字,就像十进制中允许出现十一样,所以需要特判一下26倍数的数字即可,因为个位上可以出现26,这样做相当于借了上一位
一个26给了下一位一样。
#include<bits/stdc++.h>
using namespace std;
char ch[]="ZABCDEFGHIJKLMNOPQRSTUVWXYZ";
char s[105];
void zh(int n)
{
if(n<=26) cout<<ch[n];
else{
    if(n%26==0) zh(n/26-1);
    else zh(n/26);
    cout<<ch[n%26];
}
}
int num()
{
  int n=strlen(s),i,j,tmp=0;
  for(i=0;i<n;++i){
    tmp=tmp*26+s[i]-'A'+1;
  }
  return tmp;
}
int main()
{
   int t,i,j;
   cin>>t;
   while(t--){
    cin>>s;
    if(isalpha(s[0]))  cout<<num()<<endl;
    else {
        int n=atoi(s);
        zh(n),cout<<endl;
    }
   }
   return 0;
}
zzuli303(奇葩26进制转换)的更多相关文章
- 第四届河南省ACM 序号互换 进制转换
		
序号互换 时间限制: 1 Sec 内存限制: 128 MB 提交: 41 解决: 19 [提交][状态][讨论版] 题目描述 Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐 ...
 - Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)
		
背景: 最近在看一些Python爬虫的相关知识,讲爬取的一些数据写入到Excel表中,当时当列的数目不确定的情况下,如何通过遍历的方式讲爬取的数据写入到Excel中. 开发环境: Python 3 ...
 - JS中的进制转换以及作用
		
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ...
 - php小算法总结一(数组重排,进制转换)
		
1.两个有序数组组合成一个新的有序数组 <?php $arr1=array(2,5,7,9,12); $arr2=array(3,4,6,8,10,11); function merge_sor ...
 - CodeForces 1B-字符串,进制转换与数学
		
一个萌新的成长之路 Background 同学们都回家了,只有我和wjh还有邢神在机房敲代码,吃random口味的方便面-- Description Translated by @PC_DOS fro ...
 - JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
		
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
 - JS中的进制转换
		
1 前言 js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现. 仅作为记录. 2 代码 //10进制转为16进制 (10).to ...
 - C#的格式化(进制转换|位运算)
		
1.首先做一下知识的普及C或c Currency 货币格式D或d Decimal 十进制格式E或e Exponent 指数格式F或f Fixed point (float)固定精度格式G或g Gene ...
 - php小算法总结一(数组重排,进制转换,二分查找)
		
1.两个有序数组组合成一个新的有序数组 <?php $arr1=array(2,5,7,9,12); $arr2=array(3,4,6,8,10,11); function merge_sor ...
 
随机推荐
- Python之路----各类推导式
			
[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型] #遍历之后挨个处理[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] #筛选功能 列表推导 ...
 - ELK+Kafka学习笔记之搭建ELK+Kafka日志收集系统集群
			
0x00 概述 关于如何搭建ELK部分,请参考这篇文章,https://www.cnblogs.com/JetpropelledSnake/p/9893566.html. 该篇用户为非root,使用用 ...
 - java项目报错: org.springframework.beans.factory.BeanCreationException找不到mapper.xml文件
			
错误代码 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userSer ...
 - libcurl开源库在Win32程序中使用下载文件显示进度条实例
			
一.配置工程引用libcurl库 #define CURL_STATICLIB #include "curl/curl.h" #ifdef _DEBUG #pragma comme ...
 - 面向对象之(非)绑定方法,反射,isinstance与issubclass
			
isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查obj是否是类 cls 的对象 class Foo(object): pa ...
 - 浅入浅出JS中的eval及json
			
声明: 首先声明一下,本人是JS新手,所以不敢说深入,只是把最近对eval的学习经验拿出来跟大家分享,如果您是高手可略去不看. 适合读者: 对JS中的eval一知半解,不知eval是如何把字符串转换为 ...
 - P3386 【模板】二分图匹配 -网络流版
			
二分图匹配 题目背景 二分图 感谢@一扶苏一 提供的hack数据 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+ ...
 - MySQL 5.7.18 解压版安装
			
原文链接:https://my.oschina.net/u/3474266/blog/895696 我在安装免安装版的5.7.18的时候出现了问题,正好找到这个,十分感激 今天下载安装了MySQL C ...
 - CSS3 常用选择器
			
p:last-of-type{background-color: red;} 选择p中最后一项 p:nth-of-type(2n){background-color: red;} 隔行变色里面也可以填 ...
 - gulp报错插件gulp-notify 配置项
			
var notify = require("gulp-notify"); module.exports = function(){ var args = Array.prototy ...