JSFiddle - React, Tailwind, and code Playground
by Alex Myronov
JavaScript
const coins = [25, 10, 5, 1]
let counter = 0
const makeChange = (money, level) => {
if (counter > 15) throw 'stop'
if (money === 0) return 1
if (money === 1) return 1
counter++
let min = money
coins.forEach((coin) => {
console.log('coin', level, ':', coin, money)
if ((money - coin) > 0) {
const change = makeChange(money - coin, ++level)
if (min > change + 1) {
min = change + 1
}
}
})
return min
}
console.log(makeChange(82, 0))