[Решение] JavaScript Задача #2

[Решение] 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]

Report Page