用java 设计一个程序 设计一个程序,随机生成一组双色球(总共7个数字,一组双色球由6个红球+1个篮球组成,其中红球为1-33之间的数字,且不能重复【本题允许重复出现红球】,篮球为1-16之间的数字),要求如下: 随机生成一组双色球,每个红球数字用“-”(中划线)分割连成字符串显示,蓝球最后一个显示,且和红球之间用空格分隔。如:“23-12-3-8-14-17 8”
时间: 2024-03-25 16:37:47 浏览: 80
java写的双色球随机号码生成的程序
3星 · 编辑精心推荐
好的,以下是Java代码实现:
```java
import java.util.Arrays;
import java.util.Random;
public class Lottery {
public static void main(String[] args) {
int[] redBalls = generateRedBalls();
int blueBall = generateBlueBall();
// 将红球数组转换为字符串并显示
String redBallsString = Arrays.toString(redBalls)
.replace(", ", "-")
.replace("[", "")
.replace("]", "");
System.out.println(redBallsString + " " + blueBall);
}
// 生成6个不重复的红球数字
public static int[] generateRedBalls() {
int[] redBalls = new int[6];
Random random = new Random();
for (int i = 0; i < 6; i++) {
// 生成一个1-33的随机数,如果已经在数组中出现过则重新生成
int num;
do {
num = random.nextInt(33) + 1;
} while (contains(redBalls, num));
redBalls[i] = num;
}
Arrays.sort(redBalls); // 对红球数组进行排序
return redBalls;
}
// 生成1个篮球数字
public static int generateBlueBall() {
Random random = new Random();
return random.nextInt(16) + 1;
}
// 判断数组中是否包含某个元素
public static boolean contains(int[] array, int item) {
for (int i : array) {
if (i == item) {
return true;
}
}
return false;
}
}
```
程序使用`generateRedBalls()`方法生成6个不重复的1-33的随机数,并使用`generateBlueBall()`方法生成一个1-16的随机数。然后将红球数组和蓝球数字连接成字符串并显示。
阅读全文