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