Переписать функцию для выдачи сдачи, используя цикл и не используя рекурсию. Я не понимаю как это сделать в цикл. Можно показать на примере

            function oldgetChange(num) {
                if (num >= 10) {
                    console.log(10);
                    oldgetChange(num - 10);
                } else if (num >= 5) {
                    console.log(5);
                    oldgetChange(num - 5);
                } else if (num >= 2) {
                    console.log(2);
                    oldgetChange(num - 2);
                } else if (num >= 1) {
                    console.log(1);
                    oldgetChange(num - 1);
                } else {
                    console.log("Вся сдача выдана!");
                }
            }
       

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

Автор решения: alezhu
  function getCoffee(price, name) {
    let money = $('#money');
    let value = +money.val();
    let display = $('#display');
    if (value >= price) {
      value -= price; //money.value - price;
      money.val(value);
      const result =
        'Ваш ' + name + ' готов! <br> Сдача: ' + getChange(value);
      display.html(result);
    } else {
      display.html('У Вас не хватает денег для покупки ' + name);
    }
  }

  function getChange(num) {
    let coins_set = [];
    for (const coin of [10, 5, 2, 1]) {
      if (num == 0) break;
      const count = parseInt(num / coin);
      num = num % coin;
      if (count > 0) {
        coins_set.push(coin + 'x' + count);
      }
    }
    const result = '[' + coins_set.join(',') + ']';
    return result;
  }
→ Ссылка
Автор решения: Проста Miha

Наверное как-то так

function oldgetChange(num) {
  while (num > 0) {
    if (num >= 10) {
      console.log(10);
      num -= 10;
    } else if (num >= 5) {
      console.log(5);
      num -= 5;
    } else if (num >= 2) {
      console.log(2);
      num -= 2;
    } else if (num >= 1) {
      console.log(1);
      num -= 1;
    }
  }
  console.log("Вся сдача выдана!");
}

oldgetChange(44);

→ Ссылка