[LeetCode]62. Excel Sheet Column Title Excel列序号

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 

Credits:
Special thanks to @ifanchu for adding this problem and creating all test cases.

 

Subscribe to see which companies asked this question

 

解法:和Excel Sheet Column Number相反,这次是10进制转26进制。从低位往高位求,每进一位,则把原数缩小26倍,再对26取余,之后减去余数,再缩小26倍,以此类推,可以求出各个位置上的字母。最后只需将整个字符串翻转一下即可。

class Solution {
public:
    string convertToTitle(int n) {
        string res = "";
        while (n > 0) {
            int rem = n % 26;
            if (rem == 0) {
                res += "Z";
                n -= 26;
            }
            else {
                res += (char)(rem - 1 + 'A');
                n -= rem;
            }
            n /= 26;
        }
        reverse(res.begin(), res.end());
        return res;
    }
};

 

posted @ 2015-11-06 18:56  AprilCheny  阅读(143)  评论(0编辑  收藏  举报