Assignment #4

Write a program that reads numbers from a file (presumably there are only a few numbers in the file) and outputs all the possible sums that can be formed by subsets of the numbers. For instance, if the numbers in the file are 3 4 6, then the output would be 0, 3, 4, 6, 7, 9, 10, 13. Note that 0 is in the output because it uses none of the numbers, while 13 uses all of the numbers. Central to writing this program is implementing the methods:
// Return all sums that can be formed from subsets of elements in arr
public static ArrayList<Integer> allSums( int [ ] arr )


// Return all sums that can be formed from subset of elements in arr[0..high]
// This is recursive
private static ArrayList<Integer> allSums( int [ ] arr, int high )