Получить 24

In this example below you will see how to do a Получить 24 with some HTML / CSS and Javascript

Используя числа 1, 3, 4, 6, арифметические операции (сложение, вычитание, умножение, деление) и скобки, получить число 24. Разрешается использовать только эти числа и только эти операции. Каждое число должно использоваться один и только один раз. Операции и скобки можно использовать любое число раз. Нельзя объединять числа как цифры, составляя, например, 13 или 146.

Thumbnail
This awesome code was written by Филипп Юрьевич Ригованов, you can see more from this user in the personal repository.
You can find the original code on Codepen.io
Copyright Филипп Юрьевич Ригованов ©
  • HTML
  • JavaScript
<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  <title>Получить 24</title>
  
  
  
  
  
</head>

<body>

  
  
  

    <script  src="js/index.js"></script>




</body>

</html>

/*Downloaded from https://www.codeseek.co/a1ip/andx41fandx43eandx43bandx443andx447andx438andx442andx44c-24-RagPmM */
function make(arr, el) {
  var i, i_m, item;
  var len = arr.length;
  var res = [];

  for(i = len; i >= 0; i--) {
    res.push(
      ([]).concat(
        arr.slice(0, i),
        [el],
        arr.slice(i, i_m)
      )
    );
  }

  return res;
}

function combinations(arr) {
  var prev, curr, el, i;
  var len = arr.length;

  curr = [[arr[0]]];

  for(i = 1; i < len; i++) {
    el = arr[i];
    prev = curr;
    curr = [];

    prev.forEach(function(item) {
      curr = curr.concat(
        make(item, el)
      );
    });
  }

  return curr;
}

var numbers = ["1","3","4","6"];
var ops = '+-*/';
var vs = combinations(numbers).map(function(num) {
  return num.join("");
});

for (var l = 0; l < 24; l++) {
    for (var i = 0; i < 4; i++) {
        for (var j = 0; j < 4; j++) {
            for (var k = 0; k < 4; k++) {
                var s = vs[l].charAt(0) + ops.charAt(i)  + "(" + vs[l].charAt(1) +  ops.charAt(j) + "(" +  vs[l].charAt(2) + ops.charAt(k) + vs[l].charAt(3) + "))";
                if (eval(s) == 24) console.log(s + " = 24");
            }
        }
    }
}

Comments