From 73d989eb24e65ee695f85e2e62982d461995958e Mon Sep 17 00:00:00 2001 From: gkucmierz Date: Wed, 16 Aug 2017 03:42:45 +0200 Subject: [PATCH] Guess the Digits and Expression - brute force attemp --- guess-the-digits-and-expression/index.js | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 guess-the-digits-and-expression/index.js diff --git a/guess-the-digits-and-expression/index.js b/guess-the-digits-and-expression/index.js new file mode 100644 index 0000000..25e5d3e --- /dev/null +++ b/guess-the-digits-and-expression/index.js @@ -0,0 +1,28 @@ +function guessExpression(exp) { + let m = exp.match(/([\w\d]+)/g); + let sym = [m[0], m[1]]; + let res = +m[2]; + + let uniq = (sym[0] + sym[1]).split('') + .filter((el, i, arr) => arr.indexOf(el, i+1) === -1); + + let nums = new Array(uniq.length).fill(0); + + // brute force + while (1) { + let a = sym[0].replace(/./g, c => nums[uniq.indexOf(c)]); + let b = sym[1].replace(/./g, c => nums[uniq.indexOf(c)]); + if ((+a) * (+b) === res) { + return `${a} * ${b} = ${res}`; + } + for (let i = 0; i < nums .length; ++i) { + nums[i] += 1; + if (nums[i] >= 10) { + nums[i] = 0; + } else { + break; + } + } + } + +}