题目:
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB
思路:
类似26进制,只不过没有0,但是有26,把0当做26来处理。
代码:
class Solution {
public:
string convertToTitle(int n)
{
string result;
int tail = 0;
while(n > 0)
{
tail = n % 26;
if(tail == 0)
{
result = 'Z' + result;
tail = 26;//如果余数为0,则n要-26,这一点与十进制转2进制不同
}
else
{
char c = 'A' + tail - 1;
result = c + result;
}
n -= tail;
n /= 26;
}
return result;
}
};
法2:
class Solution {
public:
string convertToTitle(int n)
{
string result;
int tail = 0;
while(n)
{
n--;
tail = n % 26;
result = (char)(tail + 'A') + result;
n /= 26;
}
return result;
}
};