function findSum(target, type) {
let res = []
const path = []
backtracking(target, 1)
function backtracking(cur, starIndex) {
if (cur === 0) {
res.push([...path])
return;
}
for (let i = starIndex; i <= cur; i++) {
path.push(i)
if (type === 2) {
backtracking(cur - i, i);
} else {
backtracking(cur - i, 1);
}
path.pop()
}
}
return res
}
function myPrint(arr) {
for (let i in arr) {
let str = '5=';
for (let j in arr[i]) {
if (j == arr[i].length - 1) {
str += arr[i][j];
} else {
str += arr[i][j] + '+';
}
}
console.log(str);
}
}
myPrint(findSum(5, 1))
console.log("-------------------")
myPrint(findSum(5, 2))