将数字转化为字母,如1 - A, 26 - Z, 27 - 27。spa
理解展转相除法便可,思考:code
Z*26^2 + Z*26^1 + Z*26^0blog
展转相除,除以26的时候,Z*26^1 + Z*26^0 + (Z / 26),最后多个1。要么减掉,要么判断。rem
string convertToTitle(int n) { string ret; while (n > 0) { int rem = n % 26; if (rem == 0) { ret.push_back('Z'); n = n / 26 - 1; } else { ret.push_back(rem + 64); n = n / 26; } } reverse(ret.begin(), ret.end()); return ret; }
也可先--n再除,直接加上‘A’便可。string