创建所有N个数字总和等于S的数字的数组

我设法在其他地方找到了一些示例,并转换为js,但无法创建数组。

const find_digits = (n, sum, out, index) => {
    if (index > n || sum < 0) return;
    let f = "";
    if (index == n) {
        if (sum == 0) {
            console.log(out)
        }
        return
    }
    for (var i = 0; i < 10; i++) {
        out[index] = i;
        find_digits(n, sum - i, out, index + 1);
    }
}
const subset_sum = (n, sum) => {
    var out = [].fill(false, 0, n + 1);
    for (var i = 0; i < 10; i++) {
        out[0] = i;
        find_digits(n, sum - i, out, 1);
    }
    return out;
}
console.log(subset_sum(3, 17))

它成功返回第一个console.log(out),但最终的console.log仅返回[9,9,9] 我将不胜感激。

评论