1. 程式人生 > >劍指offer----輸入用字母表示的列號編碼,核心內容:二十六進位制變十進位制

劍指offer----輸入用字母表示的列號編碼,核心內容:二十六進位制變十進位制

題目:

用A表示第一列,用B表示第二列。。。。用Z表示第26列,用AA表示第27列。。。請寫出一個函式,輸入用字母表示的列號編碼,輸出它是第幾列。

思路:

此問題最精彩之處,核心---二十六進位制變十進位制

      function calColumn(){
           // var calStr = document.getElementById("preArr").value.toUpperCase();
            var calStr = 'AB'.toUpperCase()//將輸入的內容都變成大寫
            var result = 0;
            
for(var i = calStr.length; i > 0; i--) { var ch = calStr.charCodeAt(i-1)-64; if( i == calStr.length ){ result += ch }else{ //答疑:參考16進位制 BFF=12*16^2+15*16+15 result += Math.pow(26, calStr.length-i) ;//
result的結果就是列號 } } document.getElementById("showArr").value=result }

此頁面下載後,直接放在瀏覽器演示,即可成功

git原始碼頁面展示內容:https://github.com/Kristen-D/Algorithms/blob/master/algorithm/binaryOfNum/letterColumn.html