请求java 高手帮忙解决个题目!

2024-12-11 22:00:58
推荐回答(2个)
回答1:

给你发一个吧也是彩票的,以前写的内容大体上是一样的你自己改改。我的你看懂了你这个不是问题的。不给分天理难容的觉得好加点分宝贝。
import java.util.Random;
import java.util.Arrays;
/**
* 双色球彩票号码生成
*/
public class DoubleBallDemo {
public static void main(String[] args) {
String ticket = create();
System.out.println(ticket);
}
public static String create(){
//初始化全部球
String[] redPool = new String[33];
for(int i=0; i<33; i++){
redPool[i] =
i+1<10 ? "0"+(i+1):Integer.toString(i+1);
}
String[] bluePool = new String[16];
for(int i=0; i<16; i++){
bluePool[i] =
i+1<10 ? "0"+(i+1):Integer.toString(i+1);
}
//输出检查球池情况
//抽取不重复的红球, 到红球数组
Random r = new Random();
//a 定义使用标识数组
boolean[] used = new boolean[33];
String[] balls = new String[6];
int idx = 0;
while(true){
//b 产生一个随机数,
int i = r.nextInt(33);
//c 检查使用标识, 是否使用过
//d 如果使用过 重复b
if(used[i])
continue;
//e (找到没有使用过序号) 利用序号取出红球,
//添加打红球数组
balls[idx++]=redPool[i];
used[i]=true;//f 标识此序号使用过
if(idx==6)
break;
//g 重复b, 如果够6个就结束
}
//红球排序
Arrays.sort(balls);
//抽取篮球, 添加到结果中
balls = Arrays.copyOf(balls, 7);
balls[6]=bluePool[r.nextInt(16)];
//将结果转换为字符串返回
return Arrays.toString(balls);
}
}

回答2:

分太少