给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
解题思路
1-26处理为0-25
n>0的情况下取余数为0可以证明正好整除,添一个Z正好占了高位一个26(没有高位也不要紧,下次循环自然就不满足条件了)
所以n/=26之后要再减去1
class Solution { public: string convertToTitle(int n) { string ans; while(n>0){ int t=n%26; n/=26; if(t){ ans = string(1,‘A‘+t-1) + ans; }else{ ans = string(1,‘Z‘) + ans; n--; } } return ans; } };
原文:https://www.cnblogs.com/niefangzheng/p/14628815.html