面试题-记录

package com.eric;

/**
 * 给定一个正整数,返回它在 Excel 表中相对应的列名称。
 * 例如,
 * 1 -> A
 * 2 -> B
 * 3 -> C
 * ...
 * 26 -> Z
 * 27 -> AA
 * 28 -> AB
 * ...
 * 示例 1:
 * 输入: 1
 * 输出: "A"
 * 示例 2:
 * 输入: 28
 * 输出: "AB"
 * 示例 3:
 * 输入: 701
 * 输出: "ZY"
 */
public class Test01 {

    public static void main(String[] args) {
        System.out.println(cal(28));

    }

    private static String cal(int m) {
        StringBuilder builder = new StringBuilder();
        if (m % 26 == 0) {
            m /= 26;
            while (m != 0) {
                builder.append('Z');
                m /= 26;
            }
        } else {
            while (m >= 27) {
                int i = m % 26;
                builder.append((char) ((i - 1) + 'A'));
                m /= 26;

            }
            builder.append((char) ((m - 1) + 'A'));
        }
        return builder.reverse().toString();

    }
}

  

posted @ 2019-09-25 09:32  酸奶加绿茶  阅读(247)  评论(0编辑  收藏  举报