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
})
})