////////// Exercice 1 ////////// function cypher (str, offset) { let res = ""; const codeA = "a".charCodeAt(0); // character code of "a" const extent = 26; // number of letters in alphabet const realoffset = ((offset % extent) + extent) % extent; for (let i = 0; i < str.length; i++) { const code = str.charCodeAt(i); if ((code >= codeA) && (code <= codeA + extent)) { const newcode = ((code-codeA+realoffset) % extent) + codeA; res += String.fromCharCode(newcode); } else { res += str[i]; } } return res; } cypher("abcde", 1); // -> "bcdef" cypher("bcdef", -1); // -> "abcde" cypher("abcde", 13); // -> "nopqr" cypher("nopqr", 13); // -> "abcde" const key = 13; function hidden_cypher(str) { return cypher(str, key); } ////////// Exercice 2 ////////// ////////// Exercice 3 ////////// sumInteger(1, 5); // -> 15 sumInteger(5, 1); // -> 0 sumSquares(1, 5); // -> 55 sumSquares(5, 1); // -> 0 ////////// Exercice 4 ////////// powerLinear(2, 10); // -> 1024 powerLinear(7, 18); // -> 1628413597910449 ////////// Exercice 5 ////////// ////////// Exercice 6 ////////// convert(666) ;; -> "1010011010" convert2Base(666, 2) ;; -> '1010011010' convert2Base(666, 3) ;; -> '220200' convert2Base(666, 16) ;; -> '29A' ////////// Exercice 7 //////////