zoukankan      html  css  js  c++  java
  • [Water]序号呼唤

    第四届河南省大学生程序设计竞赛 第一题

    题目描述

    Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来。单元格的行坐标是由数字编号的数字序号,而列坐标使用字母序号。观察字母序号,发现第1列到第26列的字母序号分别为A,B,…,Z,接着,第27列序号为AA,第28列为AB,依此类推。

    若给Dr.Kong的机器人卡多一个数字序号(比如32),它能很快算出等价的字母序号(即AF),若给机器人一个字母序号(比如AA)),它也能很快算出等价的数字序号(27),你能不能与卡多比试比试,看谁能算得更快更准确。

    输入

    第一行:N    表示有多少组测试数据。

    接下来有N行,    每行或者是一个正整数,或者是一个仅由大写字母组成的字符串。

    输出

    对于每一行测试数据,输出一行。如果输入为一个正整数序号,则输出等价的字母序号;如果输入为字符串,则输出等价的数字序号。

    样例输入

    3
    27
    G
    AA
    

    样例输出

    AA
    7
    27
    #include <iostream>
    #include <string>
    #include <cstring>
    #include <stack>
    #include <queue>
    #include <sstream>
    
    using namespace std;
    
    void toNum(string s){
    	int len=s.length();
    	int ans=0;
    	int quan=1;
    	for(int i=len-1;i>=0;i--){
    		ans+=(s[i]-'A'+1)*quan;
    		quan*=26;
    	}
    	cout<<ans<<endl;
    }
    void toLetter(int n){
    	string s;
    	while(n>0){
    		int t=n%26;
    		char ch='A'+t-1;
    		s=ch+s;
    		n=n/26;
    
    	}
    	cout<<s<<endl;
    }
    int main(){
    	
    	string a;
    	int t,num;
    
    	cin>>t;
    	while(t--){
    		cin>>a;
    		if(a[0]>='A')toNum(a);
    		else{
    			stringstream str_cin(a);
    			str_cin>>num;
    			toLetter(num);
    		} 
    			
    	}
    
    }
    

      

  • 相关阅读:
    Elasticsearch倒排索引结构
    Redis(二)冰叔带你了解Redis-哨兵模式和高可用集群解析
    jenkins构建配置
    jenkins配置email
    jenkins配置maven
    jenkins配置java
    jenkins配置git
    centos安装jenkins
    centos安装tomcat
    centos安装jdk
  • 原文地址:https://www.cnblogs.com/bruce27/p/4552943.html
Copyright © 2011-2022 走看看