代码如下:
package com.etc.work; import java.util.ArrayList; import java.util.Scanner; public class Test1 { public static void main(String[] args) { int[] arr1= new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33}; //存放红球 int[] arr2= new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; //存放蓝球 ArrayList<Integer> list=new ArrayList<Integer>(); //存放生成的号码 int x,y; //存放红球数值和和蓝球数值 int indexx,indexy; //存放红球下标和蓝球下标 System.out.println("请选择要生成的注数(每注2元):"); Scanner sc=new Scanner(System.in); int a=sc.nextInt(); //获取生成注数 for(int i=1;i<=6;i++) { indexx=(int)(Math.random()*33); //0到32 if(list.contains(arr1[indexx])==true) { //如果已经存在这个数则跳过本次循环,进入下一次 i--; continue; } list.add(arr1[indexx]); } System.out.println("本期开奖结果为:"+list); list.clear(); //清空list for(int b=1;b<=a;b++) { indexy=(int)(Math.random()*16); //0到15,蓝球下标 for(int i=1;i<=6;i++) { indexx=(int)(Math.random()*33); //0到32 if(list.contains(arr1[indexx])==true) { //如果已经存在这个数则跳过本次循环,进入下一次 i--; continue; } list.add(arr1[indexx]); } list.add(arr2[indexy]); System.err.println("生成的第"+b+"注为:"+list); list.clear(); } } }
运行结果如下图:
如果有写的不对或者需要改进的地方,
欢迎在评论区留言指正,我看到都会一一回复。