I have a small problem that I can’t solve.
I would like, with a JavaScript code, to decompose an integer, such as the sum of several integers greater than zero and different from each other.
For now, I have managed to create the code below.
The problem is that it generates integers greater than zero, which however can be equal to each other.
How can I make them different from each other?
JavaScript code
const targetNumber = 40;
const numTerms = 20;
const result = BreakDownNumber(targetNumber, numTerms);
console.log("number to break down:", targetNumber);
console.log("random numbers:", result);
function BreakDownNumber(targetNumber, numTerms) {
let numbers = [];
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
let sum = 0;
for (let i = 0; i < numTerms - 1; i++) {
let randomNumber = getRandomNumber(1, targetNumber - sum - (numTerms - i - 1));
numbers.push(randomNumber);
sum += randomNumber;
}
// Last number
numbers.push(targetNumber - sum);
return numbers;
}
I probably have to change everything, but I don’t know.
I know it’s a trivial question but I’m truly a beginner. 😉
I gladly accept any advice and help.
Thanks a lot to everyone.
Happy programming!
