Guest User

Untitled

a guest
Oct 7th, 2025
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Lotto642 {
  4. public static void main(String[] args) {
  5. final int numCount = 6;
  6. final int maxNum = 42;
  7. System.out.printf("%d/%d LOTTO%n", numCount, maxNum);
  8. System.out.printf("Enter %d numbers between 1 and %d (no duplicates):%n",numCount,maxNum);
  9. final Set<Integer> userNums = getUserNumbers(numCount, maxNum);
  10. final Set<Integer> winningNums = getRandomSet(numCount, maxNum);
  11. final Set<Integer> intersection = new HashSet<>(winningNums);
  12. intersection.retainAll(userNums);
  13.  
  14. System.out.println("\nYour numbers: " + winningNums);
  15. System.out.println("Winning numbers: " + userNums);
  16. System.out.println("You matched " + intersection.size() + " number(s).");
  17.  
  18. switch (intersection.size()) {
  19. case 6 -> System.out.println("JACKPOT!");
  20. case 3, 4, 5 -> System.out.println("MINOR prize!");
  21. default -> System.out.println("Sorry, no prize. Better luck next time!");
  22. }
  23. }
  24. private static Set<Integer> getUserNumbers(int numCount, int maxNum) {
  25. final Scanner s = new Scanner(System.in);
  26. final Set<Integer> nums = new HashSet<>(numCount);
  27. while (nums.size() < numCount) {
  28. System.out.printf("Enter number %d: ", nums.size() + 1);
  29. final int num = s.nextInt();
  30. if(nums.contains(num)) {
  31. System.out.println("Duplicate number! Try again.");
  32. continue;
  33. }
  34. if (num > maxNum || num < 1) {
  35. System.out.println("Invalid! Number must be between 1 and " + maxNum);
  36. continue;
  37. }
  38. nums.add(num);
  39. }
  40. return nums;
  41. }
  42.  
  43. private static Set<Integer> getRandomSet(int numCount, int maxNum) {
  44. Set<Integer> nums = new HashSet<>();
  45. Random random = new Random();
  46. while (nums.size() < numCount) {
  47. nums.add(random.nextInt(maxNum) + 1);
  48. // Sets ignore duplicates, so the size will only increase with distinct numbers
  49. }
  50. return nums;
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment