zoukankan      html  css  js  c++  java
  • nyist 303 序号互换

    序号互换

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
    描述

    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


    代码:
    #include <stdio.h>
    #include <string.h>
    #include <math.h>

    int a[10];

    int char_int(char ch[])
    {
        int i = 0;
        int sum = 0;
        for(i = 0; i < strlen(ch); i++)
          {
              sum = sum * 10 + ( (int)ch[i] - 48);
          }
        return sum;
    }

    void int_print(char ch[])
    {
        int x = char_int(ch);
        int i = 0;
        while(x)
        {
            if(x%26 != 0)
            {
                a[i] = x % 26;
                x /= 26;
            }
            else
            {
                a[i] = 26;
                x = x/26 - 1;
            }
            ++i;
        }
      int j = 0;
      for(j = i-1; j>=0; j--)
       {
                printf("%c",a[j] + 64);
       }
       printf("\n");
    }

    void char_print(char ch[])
    {
        int i;
        int k = 0;
        int sum = 0;
        for(i = strlen(ch)-1; i >= 0; i--)
            {
                sum += ((int)ch[i]-64) * pow(26,k);
                k++;
            }
             printf("%d\n",sum);
    }

    int main()
    {
        int n;
        scanf("%d",&n);
        while(n--)
        {
            char ch[20];
            scanf("%s",ch);
            if(ch[0]>='A' && ch[0]<='Z')
                char_print(ch);
            else
                int_print(ch);
        }
        return 0;

    }
    字符转数字很简单,那个字符转数字就是考虑一下那个最后一个是Z的情况这样就好解决了


  • 相关阅读:
    Windows7共享设置
    13-运算符
    13-数据类型转换
    06-移动web之flex布局
    09-sass
    08-less预处理器
    移动端必须掌握知识点
    11-JS变量
    10-响应式
    07-rem
  • 原文地址:https://www.cnblogs.com/yyroom/p/2940516.html
Copyright © 2011-2022 走看看