一、題目介紹
給定一個正整數,返回它在 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;
}
};