Excel列名和列序号转换 - 给杰瑞一块奶酪~

8023spz 2021-12-20 原文


Excel列名和列序号转换


大家有没有留意过Excel表格中列名的规律呢?是这样的:
A B C ... Y Z AA AB AC ... AY AZ BA BB BC ... BY BZ ... ZZ ... AAA ... 
如果没看懂,请打开Excel程序仔细观察一下~~ 
每一列都是有序号的,从1开始编号,即:列A B C ... Y Z AA AB ... 的编号依次是 1 2 3 ... 25 26 27 28 ... 
现在,请编写程序,按照上述规律,把输入的列名和列序号进行相互转换(不用考虑Excel软件实际允许的最多列数)。

输入格式:

输入由若干行组成,每行的内容是以下三种之一:

  • 长度不超过6的由大写字母组成的字符串,表示一个列名
  • 不超过9位数字的正整数,表示一个列序号
  • 符号#,表示输入结束

输出格式:

对于在输入结束符#之前出现的每一行输入,若输入为列名,在一行内打印对应的列序号;若输入为列序号,在一行内打印对应的列名。

输入样例:

A
3
AB
29
#

输出样例:

1
C
28
AC

强哥出的题还挺好玩,类似进制转换吧。。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
using namespace std;


string s;
int d;
void print(int t) {
    if(!t) return;
    print((t - 1) / 26);
    putchar(\'A\' + (t - 1) % 26);
}
void print(string t) {
    int d = 0;
    for(int i = 0;i < t.size();i ++) {
        d = d * 26 + t[i] - \'A\' + 1;
    }
    printf("%d\n",d);
}
int main() {
    while(cin >> s && s != "#") {
        if(isdigit(s[0])) {
            istringstream(s) >> d;
            print(d);
            putchar(\'\n\');
        }
        else {
            print(s);
        }
    }
}

 

发表于
2019-03-29 21:24 
给杰瑞一块奶酪~ 
阅读(1741
评论(0
编辑 
收藏 
举报

 

版权声明:本文为8023spz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/8023spz/p/10624013.html

Excel列名和列序号转换 - 给杰瑞一块奶酪~的更多相关文章

  1. JavaWeb之项目实战-网上书店(二十一) – Coding永无止尽

    JavaWeb之项目实战-网上书店(二十一) 简介 作为这篇博客花费了些许时间练习和整理,最终能掌握,也算上没 […]...

  2. 为什么 EXISTS(NOT EXIST) 与 JOIN(LEFT JOIN) 的性能会比 IN(NOT IN) 好 – xiaoheike

    为什么 EXISTS(NOT EXIST) 与 JOIN(LEFT JOIN) 的性能会比 IN(NOT IN […]...

  3. .NET和Java之争 – 叶伟民

    .NET和Java之争 2019-02-08 01:44  叶伟民  阅读(11007)  评论(53)  编 […]...

  4. svn下载 – jacunjpg

    svn下载 首先介绍的是SVN安装包的下载,分别包括服务器版和客户端版 下载地址:http://subvers […]...

  5. 不同地区的程序员 – 时光平移

    不同地区的程序员 最近,极光大数据根据极光调研平台收到的1684份有效问卷,发布了一份2018年3月中国程序员 […]...

  6. HTML5之pushstate、popstate操作history,无刷新改变当前url – sniper007

    HTML5之pushstate、popstate操作history,无刷新改变当前url 2014-01-29 […]...

  7. C++ “::” 作用域符 双冒号

    C++ “::” 作用域符 双冒号 作用域符 :: 是作用域符,是运算符中等级最高的,它分为三种: 1)glo […]...

  8. spring mvc中url-pattern的写法 – 董大志

    spring mvc中url-pattern的写法 参考文献:  http://www.monkey1024. […]...

随机推荐

  1. 一代人的青春–芳华

    一代人有一代人的青春记忆,如果80后的青春记忆体现在电影《致青春》,那则《芳华》应该是60后的青春记忆了吧。这 […]...

  2. ffmpeg第3篇:为视频添加静态水印

    在ffmpeg中,添加水印需要用overlay滤镜,这是一个复杂滤镜,因为它需要两个输入,默认第一个输入是主画 […]...

  3. 01.WAMP搭建 [Win7+Apache2.4+MySQL5.7+PHP7

    WAMP搭建[Win7+Apache2.4+MySQL5.7+PHP7 一、背景        将电脑光驱位拆 […]...

  4. Linux Tun/Tap 介绍

    什么是Tun/Tap在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。TAP等同于一个以太...

  5. 对接https数据(3des加密) – 懒得起名了

    对接https数据(3des加密) private void checkThread() { Urls url […]...

  6. 关于5g的理解

    第五代移动通信技术(英语:5th generation mobile networks或5th generat […]...

  7. 一本正经的聊数据结构(6):最优二叉树 —— 哈夫曼树

    前文传送门: 「一本正经的聊数据结构(1):时间复杂度」 「一本正经的聊数据结构(2):数组与向量」 「一本正 […]...

  8. 知名网站内部资料:WEB页面内容优化管理与性能技巧

    回想一下,以前我们不得不花费大量时间去优化页面内容(图片、CSS等等),如今用户有更快速的互联网链接,我们似乎 […]...

展开目录

目录导航