【CSDN 每日一练 ★☆☆】【数学】Excel表列名称
数学 进制转换

题目

给你一个整数columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:
A -> 1
B -> 2
C -> 3

Z -> 26
AA -> 27
AB -> 28

示例

示例 1:
输入:columnNumber = 1
输出:“A”

示例 2:
输入:columnNumber = 28
输出:“AB”

示例 3:
输入:columnNumber = 701
输出:“ZY”

示例 4:
输入:columnNumber = 2147483647
输出:“FXSHRXW”

提示
  • 1 <= columnNumber <= 231 - 1
思路
  • 26进制
实现
public String convertToTitle(int n) {
    if (n <= 0) {
        return "";
    }
    StringBuilder sb = new StringBuilder();
    while (n > 0) {
        // 模26,范围在0~25之间
        n--;
        // 转成对应字符
        sb.append((char) (n % 26 + 'A'));
        n = n / 26;
    }
    // 逆序输出,其实用递归实现,不需要逆序
    return sb.reverse().toString();
}
11-09 14:54