JSFiddle - React, Tailwind, and code Playground

by mschock

JavaScript

function sort(denoms) {
    return denoms;
}

function combos(amount, denoms) {
    denoms = sort(denoms);
    
    var count = 0;
    
    getCounts(0, amount, denoms);
}

function getCounts(currentSum, amount, denoms) {
    for (var k = 0; k < denoms.length; k++) {
        var newSum = currentSum + denoms[k];
        if (newSum === amount) {
            count++;   
        } else if (newSum < amount) {
            getCounts(newSum);
        } else {
            // newSum is too big
            continue;
        }
    }
}

combos(