每日一题之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为止,但是注意我们输出的时候需要反向输出,因为我们一开始压入数组的时候是从个位开始的,因此我们想从低位开始输出的时候,我们应该反向输出字符数组。

相关推荐
杜子腾dd13 小时前
10.Excel:快速定位目标值
数据分析·excel
春眠不觉晓♞14 小时前
使用多线程快速向Excel中快速插入一万条数据案例
java·学习·excel
蜗牛沐雨15 小时前
Pandas 数据导出:如何将 DataFrame 追加到 Excel 的不同工作表
python·excel·pandas
JavaDog程序狗15 小时前
【java】easypoi导出excel单元格,填充动态下拉列
java·spring boot·excel
engchina20 小时前
Dify 使用 excel 或者 csv 文件创建知识库
excel·dify
过期的秋刀鱼!2 天前
数据分析之技术干货业务价值 powerquery 分组排序后取TOP
数据挖掘·数据分析·excel·数据清洗·分组排序·powerquery·电商货品分析
凯子坚持 c2 天前
Trae 宝藏功能实测:从 Mcp 搭建天气系统,到 AI 重塑 Excel 数据处理
java·人工智能·excel
二狗哈3 天前
制作一款打飞机游戏23:编辑器ui
ui·编辑器·excel
CodeCraft Studio3 天前
Excel处理控件Spire.XLS系列教程:Java设置Excel活动工作表或活动单元格
java·python·excel
CodeJourney.3 天前
深度探索:DeepSeek赋能WPS图表绘制
数据库·人工智能·算法·信息可视化·excel