Переписать функцию для выдачи сдачи, используя цикл и не используя рекурсию. Я не понимаю как это сделать в цикл. Можно показать на примере
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);