package com.interview.books.question300;
/**
* Created_By: stefanie
* Date: 14-12-15
* Time: 下午12:09
*/
public class TQ7_BoxPlacer {
public void place(int n, int k){
if(k == 0 || n == 0 || k > n) return;
int[] boxes = new int[k];
place(n, 1, boxes, 0, k);
}
public void place(int n, int cur, int[] boxes, int index, int k){
if(index >= k || n < cur) return;
boxes[index] = cur;
if(n - cur == 0){ //add condition "index == k - 1" if empty box is not allow
for(int i = 0; i <= index; i++){
System.out.print(boxes[i] + ", ");
}
System.out.println();
return;
}
place(n - cur, cur, boxes, index + 1, k);
place(n, cur + 1, boxes, index, k);
}
public static void main(String[] args) {
TQ7_BoxPlacer placer = new TQ7_BoxPlacer();
System.out.println("Solution for k = 2 and n = 5");
placer.place(5, 2);
System.out.println("Solution for k = 3 and n = 10");
placer.place(10, 3);
System.out.println("Solution for k = 5 and n = 15");
placer.place(15, 5);
System.out.println("Solution for k = 3 and n = 0");
placer.place(0, 3);
}
}