leetcode 168. Excel Sheet Column Title
将数字转化为字母,如1 - A, 26 - Z, 27 - 27。
解决:
理解辗转相除法即可,思考:
Z*26^2 + Z*26^1 + Z*26^0
辗转相除,除以26的时候,Z*26^1 + Z*26^0 + (Z / 26),最后多个1。要么减掉,要么判断。
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’即可。
【本文章出自博客园willaty,转载请注明作者出处,误差欢迎指出~】