這道題也是面試題,網上的代碼有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);
}