import java.util.*; public class subsetSum{ static boolean found = false; static int[] arr; static int target; static ArrayList current= new ArrayList<>(); static void subset(int index, int sum, ArrayList current){ if(sum==target){ found = true; System.out.println("\nSubset found: "+current); return; } if(arr.length == index || sum>target){ return; } current.add(arr[index]); subset(index+1, sum+arr[index], current); current.remove(current.size()-1); subset(index+1, sum, current); } public static void main(String[] args){ Scanner sc= new Scanner(System.in); System.out.println("\nEnter size of array: "); int n = sc.nextInt(); arr = new int[n]; System.out.println("\nENter array elements: "); for(int i=0;i()); if(!found){ System.out.println("\nNo subset found"); } sc.close(); } }