diff options
| author | Dave Jacoby <jacoby.david@gmail.com> | 2021-06-28 15:58:12 -0400 |
|---|---|---|
| committer | Dave Jacoby <jacoby.david@gmail.com> | 2021-06-28 15:58:12 -0400 |
| commit | b61107f1bb11bbca80bbda7c0f9a63221eec1bbe (patch) | |
| tree | dd24c28fbb1e5871c394e8d6b8db7bf3d5dd0db1 /challenge-119/dave-jacoby/node/ch-2.js | |
| parent | 6856b37c0c18ff1c8a330db9be7dcfd41d6ab9a1 (diff) | |
| download | perlweeklychallenge-club-b61107f1bb11bbca80bbda7c0f9a63221eec1bbe.tar.gz perlweeklychallenge-club-b61107f1bb11bbca80bbda7c0f9a63221eec1bbe.tar.bz2 perlweeklychallenge-club-b61107f1bb11bbca80bbda7c0f9a63221eec1bbe.zip | |
All but Blogging
Diffstat (limited to 'challenge-119/dave-jacoby/node/ch-2.js')
| -rw-r--r-- | challenge-119/dave-jacoby/node/ch-2.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-119/dave-jacoby/node/ch-2.js b/challenge-119/dave-jacoby/node/ch-2.js new file mode 100644 index 0000000000..7386e2a0db --- /dev/null +++ b/challenge-119/dave-jacoby/node/ch-2.js @@ -0,0 +1,51 @@ +"use strict"; + +// let list = Array(20).fill(); +// for (let i in list) { +// let j = first_pass(i); +// let s = get_sequence(i * 2); +// let v = solve_sequence(i); +// console.log(["", "i", i, "j", j, "v", v].join("\t")); +// } + +let list = [2, 5, 10, 60, 200]; + +for (let i in list) { + let n = list[i]; + let s = solve_sequence(n); + console.log(["", n, s].join("\t")); +} + +function solve_sequence(n) { + let j = n * 2; + let s = get_sequence(1 + j); + while (s[n] == undefined) { + j = j * 2; + s = get_sequence(j); + } + return s[n]; +} + +function get_sequence(n) { + n = parseInt(n); + let sequence = Array(n) + .fill("") + .map((x, i) => first_pass(i + 1)) + .filter((x) => !x.toString().match(/0/)) + .filter((x) => !x.toString().match(/11/)); + sequence.unshift(0); + return sequence; +} + +function first_pass(n) { + if (n == 0) { + return 0; + } + let output = []; + while (n) { + let i = n % 4; + n = parseInt(n / 4); + output.push(i); + } + return output.reverse().join(""); +} |
