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))