每日一题之Excel地址

题目描述

Excel 单元格的地址表示很有趣,它使用字母来表示列号。

比如,

A 表示第 1 列,

B 表示第 2 列,

Z 表示第 26 列,

AA 表示第 27 列,

AB 表示第 28 列,

BA 表示第 53 列,

⋯⋯

当然 Excel 的最大列号是有限度的,所以转换起来不难。

如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?

本题目即是要求对输入的数字, 输出其对应的 Excel 地址表示方式。

输入描述

输入一个整数 nn,其范围 [1,2147483647]。

输出描述

输出 nn 对应的 Excel 地址表示方式。

cpp 复制代码
#include <iostream>
#include<vector>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int n;
  cin>>n;
  vector<char> a;
  while(n>0){
    n--;
    a.push_back(n%26+'A');
    n/=26;
  }
  for(int i=a.size()-1;i>=0;i--){
    cout<<a[i];
  }
  return 0;
}

思路就是处理进位数,1=A,AA=26*1+1,类似于26进制数,每26进一位,但是需要注意的是0转换成字符才是A,因此我们需要先让n--,例如数字为53,对26取余为1,对应的个位字符为B,但实际上对应的字符应为A,对应的数字应为0,所以我们需要先让n--,然后对其取余,转换为字符,压入字符数组,然后我们将n除以26,去找高一位的数字,以此类推,直到n小于等于0为止,但是注意我们输出的时候需要反向输出,因为我们一开始压入数组的时候是从个位开始的,因此我们想从低位开始输出的时候,我们应该反向输出字符数组。

相关推荐
PacosonSWJTU1 小时前
python基础-13-处理excel电子表格
开发语言·python·excel
开开心心就好5 小时前
解决 PDF 难题:批量处理、文档清理与自由拆分合并
java·学习·eclipse·pdf·word·excel·生活
hello_simon6 小时前
PDF转换:在线将PDF转PPT并且可编辑文字图片,超快速转换软件,无需下载
pdf·html·excel·pdf转html·excel转pdf格式
1111Alisa11 小时前
数据分析-Excel-学习笔记Day1
学习·数据分析·excel
Enti7c1 天前
数据一键导出为 Excel 文件
前端·javascript·excel·jquery
pk_xz1234561 天前
完整的Python程序,它能够根据两个Excel表格(假设在同一个Excel文件的不同sheet中)中的历史数据来预测未来G列数字
开发语言·python·excel
风舞红枫2 天前
WPS宏开发手册——Excel实战
excel·wps
乘风!2 天前
Java导出excel,表格插入pdf附件,以及实现过程中遇见的坑
java·pdf·excel
程序猿熊跃晖2 天前
Excel 数据导入与 SQL 生成:基于 Hutool 和 Apache POI 的优雅实践
sql·apache·excel
IT技术分享社区2 天前
解锁Excel超能力:方方格子插件介绍
excel·电脑技巧