zoukankan      html  css  js  c++  java
  • 第四届河南省ACM 序号互换 进制转换

    序号互换

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 41  解决: 19
    [提交][状态][讨论版]

    题目描述

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

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

    输入

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

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

    输出

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

    样例输入

    4
    27
    G
    AA
    ALK
    

    样例输出

    AA
    7
    27
    999
    

    思路:26进制转换

    代码:

    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    string s;
    string sloveone() {
        int num=0;
        int len=s.length();
        for(int i=0;i<len;i++) {
            num=num*10+(s[i]-'0');
        }
        string ss;
        while(num) {
            if(num%26==0) {
                ss+='Z';
                num=num/26-1;
            }
            else {
                ss+=(num%26)+'A'-1;
                num/=26;
            }
        }
        return ss;
    }
    int slovetwo() {
        int len=s.length();
        int sum=0;
        for(int i=0;i<len;i++) {
            sum=sum*26+(s[i]-'A'+1);
        }
        return sum;
    }
    int main() {
        int T;
        scanf("%d",&T);
        while(T--) {
            cin>>s;
            if(s[0]>='0'&&s[0]<='9') {
                string ss;
                ss=sloveone();
                int len=ss.length();
                for(int i=len-1;i>=0;i--) {
                    printf("%c",ss[i]);
                }
                printf("
    ");
            } else {
                int num;
                num=slovetwo();
                printf("%d
    ",num);
            }
        }
        return 0;
    }
    


  • 相关阅读:
    纪念一下なぞなぞゲーム
    071221 晴
    Sightseeing Cows poj3621
    【HDU 5721】Palace(平面最近点对)
    继承和多态的一些知识点
    3D Convex Hull HDU 3662 三维凸包
    Monthly Expense POJ 3273 二分
    确定比赛名次 HDU 1285拓扑排序裸题
    序列变换
    Dropping tests 二分+01分数规划
  • 原文地址:https://www.cnblogs.com/lemonbiscuit/p/7776004.html
Copyright © 2011-2022 走看看