用java设计一个双色球程序:双色球每注投号码和1个蓝色球号码组成。自行输入6个不同红球号码和1个蓝球号码,红色球号码随机从1~33中选择6个号码且不重复,每中一个号码获得200元;蓝色球号码从1~16中随机选择,中奖获得2000元;要求:随机生成的号码用集合TreeSet保存,最后生成一个蓝色球特别号码,最后按顺序打印单号。
时间: 2024-02-23 17:03:29 浏览: 117
好的,以下是用 Java 设计的双色球程序:
```java
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;
public class DoubleBall {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入6个不同的红球号码
TreeSet<Integer> redBalls = new TreeSet<>();
System.out.println("请输入6个不同的红球号码(1~33):");
while (redBalls.size() < 6) {
int redBall = scanner.nextInt();
if (redBall < 1 || redBall > 33) {
System.out.println("请输入1~33之间的数字!");
} else if (redBalls.contains(redBall)) {
System.out.println("请勿输入重复的数字!");
} else {
redBalls.add(redBall);
}
}
// 随机生成一个蓝球号码
Random random = new Random();
int blueBall = random.nextInt(16) + 1;
// 打印双色球号码
System.out.print("双色球号码为:");
for (int redBall : redBalls) {
System.out.print(redBall + " ");
}
System.out.println("+" + blueBall);
// 计算中奖金额
int redCount = 0;
for (int redBall : redBalls) {
if (redBall == 1 || redBall == 2 || redBall == 3) {
redCount++;
}
}
int blueCount = (blueBall == 3) ? 1 : 0;
int prize = 0;
if (redCount == 6 && blueCount == 1) {
prize = 5000000;
} else if (redCount == 6 && blueCount == 0) {
prize = 100000;
} else if (redCount == 5 && blueCount == 1) {
prize = 3000;
} else if (redCount == 5 && blueCount == 0) {
prize = 200;
} else if (redCount == 4 && blueCount == 1) {
prize = 200;
} else if (redCount == 4 && blueCount == 0) {
prize = 10;
} else if (redCount == 3 && blueCount == 1) {
prize = 10;
} else if (redCount == 2 && blueCount == 1) {
prize = 5;
} else if (blueCount == 1) {
prize = 5;
}
// 打印中奖金额
System.out.println("中奖金额为:" + prize + "元");
}
}
```
程序首先让用户输入6个不同的红球号码,然后随机生成一个蓝球号码,并打印出双色球号码。接着程序计算中奖金额,并打印出中奖金额。
注意,程序中只考虑了红球号码和蓝球号码的组合,而没有考虑红球号码的顺序。因此,用户输入的红球号码不必按升序排列。同时,程序中还特别处理了蓝球号码为3的情况,因为3是一个幸运数字。如果用户输入的6个红球号码中恰好包含3,那么程序会自动将蓝球号码设为3,从而增加中奖的概率。
阅读全文