溢出 關於最後一位
阿新 • • 發佈:2018-06-12
fin ... 但是 class 加密算 tin === In 關於
// 定義 find 函數,用於返回 在字符串中的 index var find = function(s1,s2) { var len = s1.length; if (s1.includes(s2)) { for (var i = 0; i < len; i++) { var str = s1[i]; if (str == s2) { return i; } } } return -1; }
/*實現一個叫 凱撒加密 的加密算法, 描述如下 對於一個字符串, 整體移位, 就是加密 以右移 1 位為例 原始信息 ‘afz‘ 會被加密為 ‘bga‘ 實現 encode1 函數, 把明文加密成密碼並返回 右移 1 位*/ // 考慮 溢出 比如 超過了給定的範圍 9 + 1 =0 ‘dhy‘ ‘eiz‘ var lower = ‘abcdefghijklmnopqrstuvwxyz‘ var upper = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘ // lower.length = 26; indexmax = 25; var encode1 = function(s) { var result = ‘‘; for (var i = 0; i < s.length; i++) { var index = find(lower,s[i]); varnext = (index + 1) % 26; // index 25 的時候是特殊的;下一個是 0;單單 +1 無法解決; // 分類 也能解決;但是 不統一 result += lower[next]; } return result; }
// 測試函數 var test_encode1 = function() { ensure(encode1(‘afz‘) === ‘bga‘, "encode1測試1") ensure(encode1(‘crp‘) === ‘dsq‘, "encode1測試2") } test_encode1()
// 這個問題 可以歸納 為 var a = [........]; var shift = ...; var l = a.length; var Nextindex = ( Curentindex + shift ) % a;
// shift 為 偏移量,正 就是 往前 偏移 ,負 就是 往回 偏移;
溢出 關於最後一位