// function fn(totalLaps) {
// const plans = [];
// for (let i = 1; i <= totalLaps; i++) {
// for (let j = i; j <= totalLaps; j++) {
// for (let k = j; k <= totalLaps; k++) {
// if (i + j + k === totalLaps) {
// plans.push([i, j, k]);
// }
// }
// }
// }
// return plans;
// }
// const totalLaps = 20;
// const plans = fn(totalLaps);
// for (let i = 0; i < plans.length; i++) {
// console.log(`${i + 1}. ${plans[i].join(', ')}`);
// }
// function findWays(target, last, currentPlan) {
// if (target === 0) {
// console.log(currentPlan.join(", "));
// return;
// }
// for (let i = last + 1; i <= target; i++) {
// findWays(target - i, i, [...currentPlan, i]);
// }
// }
// findWays(20, 0, []);
function fn(sum,last,arr){
if(sum==0){
console.log(arr.join(' '))
return
}
for(let i=last +1;i<=20;i++){
fn(sum-i,i,[...arr,i])
}
}
fn(20,0,[])
//sum 是剩余的圈数
//last 上一次跑的圈数
//arr 记录合适方案