code in java Write a program to do the following It will pro
*code in java*
Write a program to do the following. It will prompt the user to enter a positive integer n. It will then prompt the user to enter a non-negative integer r such that 0 lessthanorequalto r lessthanorequalto n. You do not have to check for the integrity of the entered data, i.e., assume they satisfy the desired properties. Your program then must output all size r subsets of {1, 2, ..., n} in lexicographic increasing order. For example if I enter 4 for n and 2 for r the program should output (one subset on each line) the following: {1, 2} {1, 3} {1, 4} {2, 3} {2, 4} {3, 4}Solution
import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Scanner;
 import java.util.Set;
 public class subSets {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Integer> set = new ArrayList<>();
        Scanner scan = new Scanner(System.in);
        System.out.print(\"Enter a positive integer:\");
        int n = scan.nextInt();
        System.out.print(\"Enter a non-negative integer:\");
        int r = scan.nextInt();
        for(int i=1;i<=n;i++)
        {
            set.add(i);
        }
        get(set,r,0,new HashSet<Integer>());
    }
   private static void get(List<Integer> set, int r, int pnt, Set<Integer> temp) {
        // TODO Auto-generated method stub
        if(temp.size()==r)
        {
            int i=0;
            System.out.print(\'{\');
            for (Integer s : temp) {
                if(i>0)
                {
                    System.out.print(\',\');
                }
            System.out.print(s);
            i++;
            }
            System.out.println(\'}\');  
        }
        if(pnt==set.size())
        {
            return;
        }
        temp.add(set.get(pnt));
        get(set,r,pnt+1,temp);
        temp.remove(set.get(pnt));
        get(set,r,pnt+1,temp);
    }
}

