public class question3 { private static int HIGH = 10; public static void main(String[] args) { for(int i=0; i<30; i++) { System.out.println(solutions(i, 1, 1, 1)); } } public static void solutionsFlat(int num) { for (int i = 1; i <= 10; i++) { for (int j = 1; j <= 10; j++) { for (int k = 1; k <= 10; k++) { if (i + j + k == num) System.out.println(i + "+" + j + "+" + k); } } } } public static int solutions(int num, int i, int j , int k) { if (i > HIGH) { return 0; }else { if (j > HIGH) { return solutions(num, i + 1, 1, k); } else { if (k > HIGH) { return solutions(num, i, j+1, 1); }else { if (i + j + k == num) { System.out.println(i + "+" + j + "+" + k); return solutions(num, i, j, k+1)+1; } } } } return solutions(num, i, j, k+1); } public static void loop(int i, int max) { if (i < max) // ACTION System.out.println("DO ACTION"); else return; loop(i + 1, max); } }