public class Demo {
public static void main(String[] args) {
new Demo().go();
}
int[] numbers = new int[6];
private final int result = 33;
public void go() {
compute(0, 0, 0);
}
private void compute(int index, int start, int n) {
for (int i = start; i <= 10; i++) {
numbers[index] = i;
int m = n + i;
if (m == result) {
print();
} else if (m > result) {
break;
} else if (index < 5) {
compute(index + 1, i, m);
}
}
numbers[index] = 0;
}
private void print() {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < 5; i++) {
buffer.append(numbers[i])
.append(" + ");
}
buffer.append(numbers[5])
.append(" = ")
.append(result);
System.out.println(buffer.toString());
}
}