Math challenge

node v14.20.1
version: 2.0.1
endpointsharetweet
change the numbers in the numbers const to change what it searches for, results appear at the bottom.
const { evaluate } = require("mathjs"); const main = (numbers) => { const results = []; const operations = { 0: '+', 1: '-', 2: '*', 3: '/' }; const checkResult = (total, result) => { if (total === result) return true; else return false; }; const loopOperations = ( a, b, c, d, result ) => { for (let i = 0; i < 4; i++) { for (let j = 0; j < 4; j++) { for (let k = 0; k < 4; k++) { let total = evaluate( `${a} ${operations[i]} ${b} ${operations[j]} ${c} ${operations[k]} ${d}` ); if (checkResult(total, result)) { results.push( `${a} ${operations[i]} ${b} ${operations[j]} ${c} ${operations[k]} ${d} = ${result}` ); } total = evaluate( `(${a} ${operations[i]} ${b}) ${operations[j]} ${c} ${operations[k]} ${d}` ); if (checkResult(total, result)) { results.push( `(${a} ${operations[i]} ${b}) ${operations[j]} ${c} ${operations[k]} ${d} = ${result}` ); } total = evaluate( `${a} ${operations[i]} (${b} ${operations[j]} ${c}) ${operations[k]} ${d}` ); if (checkResult(total, result)) { results.push( `${a} ${operations[i]} (${b} ${operations[j]} ${c}) ${operations[k]} ${d} = ${result}` ); } total = evaluate( `${a} ${operations[i]} ${b} ${operations[j]} (${c} ${operations[k]} ${d})` ); if (checkResult(total, result)) { results.push( `${a} ${operations[i]} ${b} ${operations[j]} (${c} ${operations[k]} ${d}) = ${result}` ); } total = evaluate( `(${a} ${operations[i]} ${b} ${operations[j]} ${c}) ${operations[k]} ${d}` ); if (checkResult(total, result)) { results.push( `(${a} ${operations[i]} ${b} ${operations[j]} ${c}) ${operations[k]} ${d} = ${result}` ); } total = evaluate( `${a} ${operations[i]} (${b} ${operations[j]} ${c} ${operations[k]} ${d})` ); if (checkResult(total, result)) { results.push( `${a} ${operations[i]} (${b} ${operations[j]} ${c} ${operations[k]} ${d}) = ${result}` ); } } } } }; loopOperations( numbers.one, numbers.two, numbers.three, numbers.four, numbers.result ); loopOperations( numbers.two, numbers.one, numbers.three, numbers.four, numbers.result ); loopOperations( numbers.one, numbers.two, numbers.four, numbers.three, numbers.result ); loopOperations( numbers.two, numbers.one, numbers.four, numbers.three, numbers.result ); // loopOperations( numbers.three, numbers.four, numbers.one, numbers.two, numbers.result ); loopOperations( numbers.three, numbers.four, numbers.two, numbers.one, numbers.result ); loopOperations( numbers.four, numbers.three, numbers.one, numbers.two, numbers.result ); loopOperations( numbers.four, numbers.three, numbers.two, numbers.one, numbers.result ); // // loopOperations( numbers.one, numbers.four, numbers.three, numbers.two, numbers.result ); loopOperations( numbers.four, numbers.one, numbers.three, numbers.two, numbers.result ); loopOperations( numbers.one, numbers.four, numbers.two, numbers.three, numbers.result ); loopOperations( numbers.four, numbers.one, numbers.two, numbers.three, numbers.result ); // loopOperations( numbers.three, numbers.two, numbers.one, numbers.four, numbers.result ); loopOperations( numbers.three, numbers.two, numbers.four, numbers.one, numbers.result ); loopOperations( numbers.two, numbers.three, numbers.one, numbers.four, numbers.result ); loopOperations( numbers.two, numbers.three, numbers.four, numbers.one, numbers.result ); return results } const endpoint = require("@runkit/runkit/json-endpoint/1.0.0"); endpoint(exports, async function(incomingData) { return main({ one: incomingData.body.one, two: incomingData.body.two, three: incomingData.body.three, four: incomingData.body.four, result: incomingData.body.result }) })
Loading…

no comments

    sign in to comment