题目:
算法思想:先看对应关系,A对应1,然后字符串结果就是把数字累加起来,相当于这是一个26进制的数。需要注意的是26对应的是Z,如果n%26 == 0,则直接在结果中加Z,但是由于字符串是从单个字符A开始的,所以n/26后要减1。举个例子,假如输入的数是52,52%26==0,52/26==2,这个时候结果是AZ,而不是BZ,因为商的结果2要减一。
代码:
string convertToTitle(int n) {
string result = "";
while(n != 0)
{
int tmp = n % 26;
if(tmp == 0)
{
result = 'Z' + result;
n = n / 26 - 1;
}
else
{
char c = 'A' + tmp - 1;
result = c + result;
n = n / 26;
}
}
return result;
}