一、题目介绍
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二、解题思路
本题可以将这种表示方法理解为26进制数,每一位数最小为A,最大为Z。当所给数值大于26时,需要进位表示。比如27需要用AA表示,28则需要用AB表示。跟十进制的满10进1是一个道理,这里的26进制是满26进A。具体实现请见代码。
三、解题代码
class Solution {
public:
string convertToTitle(int n) {
char baseCh = 'A' - 1;
string str;
int r = 0;
while(n > 26)
{
r = n % 26;
n = n / 26;
if(r == 0)
{
str = 'Z'+ str;
n -= 1;
}
else
str = char(baseCh + r) + str;
}
str = char(baseCh + n) + str;
return str;
}
};