您的位置:首页 > 科技 > IT业 > 网站建设课程设计实训报告_中央投诉举报电话大全_湖北网站建设制作_网址域名ip解析

网站建设课程设计实训报告_中央投诉举报电话大全_湖北网站建设制作_网址域名ip解析

2025/4/3 11:24:58 来源:https://blog.csdn.net/m0_73096516/article/details/145907306  浏览:    关键词:网站建设课程设计实训报告_中央投诉举报电话大全_湖北网站建设制作_网址域名ip解析
网站建设课程设计实训报告_中央投诉举报电话大全_湖北网站建设制作_网址域名ip解析

题目描述

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

比如,

A 表示第 1 列,

B 表示第 2 列,

Z 表示第 26 列,

AA 表示第 27 列,

AB 表示第 28 列,

BA 表示第 53 列,

⋯⋯

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

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

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

输入描述

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

输出描述

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com