let n = 6 let m = 8 function help(n, m, addArr, start){ let midNum = m/2 if(midNum>=n || midNum<1) return for(let i=start; i<midNum; i++){ if(m-i<=n){ //打印 console.log([...addArr, i, m-i].join(' ')) } //递归 addArr.push(i) help(n, m-i, addArr, i+1) addArr.pop() } } help(n, m, [], 1) if(n>=m){ console.log(m) }