zoukankan      html  css  js  c++  java
  • 1B. Spreadsheets

    题目大意:

    行和列的两种方式。
    A是1, B是2,....Z是26, AA是27, AB是28...........
    如: BC23代表55列23行
    还有一种表示方法:R23C55, 代表23行,55列。
     
    要求这两种数字之间相互转化。
    =========================================================================
    需要注意的就是两点:
    1. 每个数字对26取余数后要再 - 1,再+‘A’ 就是答案了。
    2. 如果余数是0则要对C--,并且输出的字符是Z、
     
     
     
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    #include <string>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <cstdlib>
    using namespace std;
    typedef long long LL;
    const LL INF = 0xffffff;
    const int maxn = 201315;
    const LL MOD = 1e9+7;
    void Putt(int C)
    {
        if(C == 0)
            return ;
        if(C%26 == 0)
            Putt((C-1)/26);
        else
            Putt(C/26);
        char ch;
        if(C%26 == 0)
            ch = 'Z';
        else
            ch = C%26 + 'A' - 1;
        printf("%c", ch);
    }
    
    void ChangeOne(char str[])
    {
        int R, C;
        sscanf(str,"R%dC%d", &R, &C);
    
        Putt(C);
        printf("%d
    ", R);
    }
    
    void ChangeTow(char str[])
    {
        int num = 0, i;
        for(i=0; str[i] >= 'A' && str[i] <= 'Z'; i++)
        {
            num = num*26 + str[i] - 'A' + 1;
        }
        printf("R%sC%d
    ",str+i, num);
    }
    bool Ok(char str[])
    {
        if(str[0] == 'R' && str[1] >= '0' && str[1] <= '9')
        {
            for(int i=1; str[i]; i++)
            {
                if(str[i] == 'C')
                    return true;
            }
        }
        return false;
    }
    
    
    int main()
    {
        int T;
        char str[105];
        scanf("%d", &T);
        while(T--)
        {
            cin >> str;
    
            if(Ok(str))
                ChangeOne(str);
            else
                ChangeTow(str);
    
        }
        return 0;
    }
    /*
    26 Z
    27 AA
    53 BA
    BZ 78
    CA 79
    */
  • 相关阅读:
    ECMAScript 6 基础入门
    软件历史版本存档及下载
    arduino 编程基础
    生活中的实验 —— 家庭电路
    电子元件 —— 继电器
    电与磁 —— 电磁铁
    windows cmd 命令行 —— 进程与服务
    计算机硬件、摄影设备、物质、材料英语
    DHCP服务器备份、还原、迁移
    SVN同步
  • 原文地址:https://www.cnblogs.com/chenchengxun/p/4836984.html
Copyright © 2011-2022 走看看