168. Excel表列名称
链接:https://leetcode-cn.com/problems/excel-sheet-column-title/
题目描述见链接内容。
解法1:减一法
这道题实质上就是进制转换的题目,将十进制转换为26进制,但是特别之处在,如果按照26进制转换,余数是0-25,而现在的转换余数是1-26,对应A-Z,现在需要消除这两个之间的差异
解法1就是把被除数减一
首先找到字符转换的基准,String.fromCharCode(65)
,对应字母A
这个时候,如果n
等于1
,对26
取余结果是1
,我们需要给基准加上0
,才能导致结果正确,所以给n
减1
同理,n
等于26
,对26
取余结果是0
,减1
之后取余的结果是25
,加上基准,结果是Z
符合要求
var convertToTitle = function (columnNumber) {
const res = [];
while (columnNumber > 0) {
columnNumber -= 1;
res