题目描述:
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例:
- 示例1:
输入: 1
输出: "A"
- 示例2:
输入: 28
输出: "AB"
- 示例3:
输入: 701
输出: "ZY"
解题思路:
1-26分别对应就是A-Z,相当于将10进制的数转换为26进制的数,参考二进制与十进制转换采用的除二取余法,十进制转26进制则使用除26取余,再将得到的余数强制转换成对应的A-Z的字母后拼接即可。
AC代码:
class Solution {
public:
string convertToTitle(int n) {
string str;
while(n > 0)
{
str = char( (n - 1) % 26 + 'A') + str;//字符串的拼接
n = (n - 1) / 26;
}
return str;
}
};