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
class Solution {
public:string convertToTitle(int n) {
vector<int> num;
//转换成数字(逆序)
while(n/26!=0){
num.push_back(n%26);
n /= 26;
}
num.push_back(n);
int len = num.size();
//对0进行处理(01(逆序)相当于26,‘Z’)
// eg:26^2,即成了001(逆序),第一次循环后为 26 -1 1,第二次循环后 26 25 0;
for(int i = 0;i<len-1;i++){if(num[i]<=0){
num[i+1] -= 1;
num[i] += 26;
}
}
if(num[num.size()-1] == 0)
num.pop_back();
int size = num.size();
char str[size + 1];
//逆序,转换为字符串
for(int j = 0;j<size;j++){
str[j] = num[size - 1 - j] - 1 + 'A';
}
str[size] = '\0';
string s(str);
return s;
}
};