Skip to content

Instantly share code, notes, and snippets.

@ntub46010
Last active November 17, 2019 14:14
Show Gist options
  • Save ntub46010/26c7da871704330998d4e6ad5c12576c to your computer and use it in GitHub Desktop.
Save ntub46010/26c7da871704330998d4e6ad5c12576c to your computer and use it in GitHub Desktop.
樂透程式
package com.vincent.demo;
import java.util.*;
import java.util.stream.Collectors;
public class JavaMain {
public static void main(String[] args) {
Set<Integer> selectedNumbers = new HashSet<>();
Scanner scan = new Scanner(System.in);
while (selectedNumbers.size() < 6) {
System.out.printf("請輸入第%d個號碼,已選擇:%s",
selectedNumbers.size() + 1, getNumberSummary(selectedNumbers));
int num = scan.nextInt();
if (num > 0 && num < 50) {
selectedNumbers.add(num);
} else {
System.out.println("號碼應在1~49之間,請再輸入一次");
}
}
List<Integer> lotteryNumbers = getRandomLotteryNumbers();
StringBuilder sb = new StringBuilder("樂透開獎號碼:");
for (int i = 0; i < 6; i++) {
sb.append(lotteryNumbers.get(i).toString()).append(" ");
}
sb.append("\n特別號:").append(lotteryNumbers.get(6));
System.out.println(sb.toString());
}
private static String getNumberSummary(Set<Integer> numbers) {
List<Integer> nums = numbers.stream()
.sorted()
.collect(Collectors.toList());
StringBuilder sb = new StringBuilder();
for (Integer num : nums) {
sb.append(num.toString()).append(" ");
}
return sb.toString();
}
private static List<Integer> getRandomLotteryNumbers() {
List<Integer> numbers = new ArrayList<>();
for (int i = 1; i <= 49; i++) {
numbers.add(i);
}
Collections.shuffle(numbers);
return numbers.stream()
.limit(7)
.collect(Collectors.toList());
}
}
@ntub46010
Copy link
Author

ntub46010 commented Nov 17, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment