题目要求:
思路:
生成红球:
- 使用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);;}
结果: