JSFiddle - React, Tailwind, and code Playground

by Nicolas PUJOL

JavaScript

var lines = [{
  line: "2",
  solution: "?"
}, {
  line: "4",
  solution: "?"
}, {
  line: "6",
  solution: "670"
}];
var b = {};
for (var l = 0; l < lines.length; l++) {
  go(lines[l].line, lines[l].solution);
}

function go(line, solution) {
  var n = 0;
  if (!b[line]) {
    var start = "";
    for (var i = 2; i < line; i += 2) {
      if (b[i]) {
      	start = "";
        for (var j = 0; j < i; j++) {
          	start += "9";
        }
        n = b[i];
      }
    }
    if (start === "") {
      start = 0;
    }
    var l = "";
    for (i = 0; i < line; i++) {
      l += "9";
    }
    console.log("start", start, "end", l, b, n)
    for (i = parseInt(start); i <= parseInt(l); i++) {
      var s = i.toString();
      while (s.length < line) {
        s = "0" + s;
      }
      if (s.substr(0, s.length / 2).split("").reduce(r) === s.substr(s.length / 2).split("").reduce(r)) {
        n++;
      }
    }
    console.log("last i", i, n)
  }
  b[line] = n;
  console.log(b, b[line]);
}

function r(a, b) {
  return parseInt(a) + parseInt(b);
}