function getComputedExpression(sum, type) {
let res = []
function dfs(sum, nums) {
if(sum === 0) {
res.push([...nums]) // 解构展开放入res数组
return
}
for(let i = 1; i <= sum; i ++) {
if(sum >= i) {
nums.push(i) // 回溯
dfs(sum - i, nums)
nums.pop()
}
}
}
dfs(sum, [])
if(type === 1) {
let set = new Set() // 去除重复数组
for(let item of res) {
set.add(item.sort((a,b) => a-b).join("+"))
}
return [...set]
}
return res.map(item => item.join("+"))
}
console.log(getComputedExpression(5, 1))
console.log(getComputedExpression(5, 2))