將數字轉化爲字母,如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