Last active
November 17, 2019 14:14
-
-
Save ntub46010/26c7da871704330998d4e6ad5c12576c to your computer and use it in GitHub Desktop.
樂透程式
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
題目來源:
https://www.facebook.com/groups/406460463268219/permalink/539383746642556/