题目
题解
1.A -> 1, Z -> 26,当成27进制,每次对27进行取余:
1%27 = 1,27%27 = 0,1等于A,27也应该等于A,但是这里等于0,矛盾。
2.1%26=1,27%26=1,当成是26进制,每次对26取余:
26%26=0,26应该对应Z,矛盾。
调整对应关系,将0->A, 25->Z, 26->AA 构成一个正常的26进制,所以每次先减一再对26取余。
public String convertToTitle(int columnNumber) {
StringBuilder stringBuilder = new StringBuilder();
while (columnNumber != 0) {
columnNumber--;
char c = (char) ('A' + columnNumber % 26);
stringBuilder.append(c);
columnNumber /= 26;
}
stringBuilder.reverse();
return stringBuilder.toString();
}