[Решение] JavaScript Задача #2
Условие здесь.
Решение
Так как в условии у нас три человека, то массив будет заполняться через цикл for. Я упростил решение, дав соответствующее уравнение.
( m / 3 - 1) + (m / 3) + (m / 3 +1)
Мы можем им воспользоваться, и начать цикл с -1 до 1.
raiders = [], input = parseInt(prompt('Гани бабло!11!!'));
for(i = -1; i <= 1; i++)
raiders.push(parseInt(input / 3 + i))
parseInt обрезает числа, стоящие за точкой (int - integer (целое число)). Далее мы кладём значения в массив. Но тогда не выполняется вторая часть условия, и не обработан случай, когда никто ничего не даёт. Нужно обработать все случаи.
let raiders = [], input = parseInt(prompt('Гани бабло!11!!'));
for(let i = -1; i <= 1; i++){
raiders.push(Math.floor(input / 3 + i));
}
let sum = raiders.reduce((a,b) => { return a + b });
if(input <= 0){
console.log('Дай денег, мудила!1!!');
raiders = [];
}
else if(input % 2 === 0 && input < 3){
raiders[1]--;
}
else if(input !== sum){
for(let o = raiders[2]; o < input - raiders[1] - raiders[0]; o++){
raiders[2]++;
}
}
console.log(raiders);
В последнем else if мы добавляем +1 к последнему элементу, когда единичка или двойка не прибавилась ни к кому, т.к. не делилась на 3. Например, если бы не было последнего else if, то при 7 возвращался бы массив [1,2,3], но это неверно, поэтому мы прибавляем +1 к 3.
Пробуем ввести 9, 0, 8, 7, 10:
[ 2, 3, 4 ] Log: Дай денег, мудила!1!! [] [1, 2, 5] [1, 2, 4] [2, 3, 5]