function findSum(target, type) {
let res = []
const path = []
backtracking(target)
function backtracking(cur) {
if (cur === 0) {
res.push([...path])
return;
}
for (let i = 1; i <= cur; i++) {
path.push(i)
backtracking(cur - i);
path.pop()
}
}
if (type === 2) {
const set = new Set()
for (let i in res) {
set.add(res[i].sort((a, b) => a - b).join('+'))
}
return Array.from(set)
} else {
for (let i in res) {
res[i] = res[i].join('+')
}
}
return res
}
function myPrint(arr) {
for (let i in arr) {
console.log(`5=${arr[i]}`)
}
}
myPrint(findSum(5, 1))
console.log("-------------------")
myPrint(findSum(5, 2))