这道题也是面试题,网上的代码有bug,自己重写了一遍
public void SumOfkNumber(int sum,int n){
if(sum<=0||n<=0)
return ;
if(sum==n){
Collections.reverse(list);
//输出时,该元素还未加入数组
System.out.print(n+" ");
for (Integer integer : list) {
System.out.print(integer+" ");
}
System.out.println();
Collections.reverse(list);
}
// 取第n个值
list.push(n);
SumOfkNumber(sum-n, n-1);
list.pop();
// 不取第n个值
SumOfkNumber(sum, n-1);
}