一般的数制都是从零开始,如果是26进制,那就是0--25 可是这里 不一样 这是从1开始的,所以需要调整一下。
自己的代码: 比较挫
public String convertToTitle(int n) {
StringBuffer sb=new StringBuffer();int tt;
while(n>0){
tt=n%26;
if(tt==0){
sb.append('Z');
n=n/26-1;
}else{
sb.append((char)(tt-1+'A'));
n=n/26;
}
}
return sb.reverse().toString();
}
别人的代码:
class Solution { public: string convertToTitle(int n) { if(n < 1) return ""; else { string result = ""; while(n) {//get every letter in n from right to left n --; char c = n%26 + 'A'; result += c; n /= 26; } reverse(result.begin(), result.end()); return result; } } };