JSFiddle - React, Tailwind, and code Playground

by Qwerty_Wasd

JavaScript

function p2(n, k) {
    
    var a = [], l = n, r = 1;
    for (var i = 0; i < l; i++) a.push(1);
    
    do {
        var s = 0, j = l - 1;
        do { s += a[j--]; } while (j > 0 && a[j - 1] <= a[j]);
        if (++a[j] > k) return r;
        l = s + i;
        for (var j = i + 1; j < l; j++) a[j] = 1;
        r++;
    } while (l > 1);
    
    return r;
}

console.log(p2(5,5))