Код не проходит все тесты Яндекс Контеста

Есть задача с Яндекс Контеста:

Имеется N кг металлического сплава. Из него изготавливают заготовки массой K кг каждая. После этого из каждой заготовки вытачиваются детали массой M кг каждая (из каждой заготовки вытачивают максимально возможное количество деталей). Если от заготовок после этого что-то остается, то этот материал возвращают к началу производственного цикла и сплавляют с тем, что осталось при изготовлении заготовок. Если того сплава, который получился, достаточно для изготовления хотя бы одной заготовки, то из него снова изготавливают заготовки, из них – детали и т.д. Напишите программу, которая вычислит, какое количество деталей может быть получено по этой технологии из имеющихся исходно N кг сплава.

Формат ввода Вводятся N, K, M. Все числа натуральные и не превосходят 200.

Формат вывода Выведите одно число — количество деталей, которое может получиться по такой технологии.

function calcBillets(str){
    if(!str) return 0;
    
    const values = str.split(' ').map(num => Number(num));
    
    let [
        alloy, // вес сплава
        billet, // вес заготовки
        detail // вес детали
    ] = values;

    if((!alloy || !billet || !detail) ||
        (detail > billet))
        return 0;

    let details = 0;

    while(alloy >= billet){
        // Считаю количество деталей из заготовки
        details += Math.floor(billet/detail);
        // убираю из сплава вес заготовки
        alloy -= billet;
        // возвращаю остаток от заготовки
        alloy += billet % detail;
    }

    return `${details}`;
    }

Проходит 13 тестов и на 14-ом падает. Тестировал на всевозможных вариантах:

calcBillets('13 5 3');
calcBillets('177 101 17');
calcBillets('127 59 15');
calcBillets('122 133 17');
calcBillets('155 0 1');
calcBillets('178 133 11');
calcBillets('19 0 0');
calcBillets('14 3');
calcBillets('19');
calcBillets('21 13 7');
calcBillets('109 9 7');
calcBillets('189 13 1');
calcBillets('189 13 11');
calcBillets('200');
calcBillets('200 200');
calcBillets('200 200 200');
calcBillets('0');
calcBillets('0 0');
calcBillets('0 0 0');
calcBillets('1 2 3');
calcBillets('1 1 1');
calcBillets('0 1 2');
calcBillets('3 2 1');
calcBillets('');

Что я не учитываю?


Ответы (0 шт):