整数分割 
对数字 n, 使用 <= m 的整数分隔,请输出所有可能的情况
- 例:n = 6, m = 4, print_partitions(6, 4)
 
text
4 + 2
4 + 1 + 1
3 + 3
3 + 2 + 1
3 + 1 + 1 + 1
2 + 2 + 2
2 + 2 + 1 + 1
2 + 1 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1 + 1回溯法 
js
function printPartitions(n, m) {
  let result = []
  function backtrack(start, current, str) {
    if (current === n) {
      result.push(str)
      return
    }
    for (let i = start; i <= Math.min(m, n - current); i++) {
      backtrack(i, current + i, (str ? str + ' + ' : '') + i)
    }
  }
  backtrack(1, 0, '')
  return result
}
console.log(printPartitions(6, 4))