题目要求:
思路:
生成红球:
- 使用random对象随机生成1-33的数字,使用长度为6的数组接收,
- 比较生成树在数组里是否有重复
- 如果重复就,本次随机数作废,重新生成
- 不重复就放入数组
- 使用Arrays.sort()对数组进行排序;
生成篮球:
- 使用Random类中的nextInt(16)+1,生成一个篮球。
- 打印输出双色球。
代码:
写一个方法,用于判断数组里面是否有num这个随机数,如果有则返回true,否则返回false。
public static boolean isOk(int num,int [] arr){
for (int a:arr) {
if(num==a){
return true;
}
}
return false;
}
main方法:
/**
* 使用java语言编写一个双色球彩票生成器
* (红球33选6,篮球16选1,红球不能重复),
* 红球按照从小到大的顺序排列。
* @param args
*/
public static void main(String[] args) {
Random random = new Random();
int [] arr1=new int[6];
arr1[0]=((random.nextInt(33))+1);
for (int i = 0; i < arr1.length; i++){
int num=((random.nextInt(33))+1);
if(isOk(num,arr1)){
i--;
System.out.println("当前数组:"+Arrays.toString(arr1)+num+"重复了");
}else {
arr1[i]=num;
}
}
Arrays.sort(arr1);
int num2 =((random.nextInt(16)) + 1);
System.out.print("红色球:");
System.out.println(Arrays.toString(arr1));
System.out.println("蓝色球:"+num2);;
}
结果: