, " - , - , ". :
static void findNumbers(int[] list, int index, int current, int goal, String result)
{
if (list.length <= index || current>goal)
return;
if (current + list[index] == goal) {
System.out.println(result + " " + String.valueOf(list[i]));
}
else if (current + list[index] < goal) {
findNumbers(list, index + 1, current + list[i], goal, result + " " + String.valueOf(list[i]));
}
findNumbers(list, index + 1, current, goal, result);
}
O(2^n), n=>5, O(n!).
, , . , 2- else if, , , list[index], , .
O(2^l), l - , , , n, .
: findNumbers(list,0,0,goal,"")