首页 > 代码库 > Java 用两个一维数组实现双色球彩票
Java 用两个一维数组实现双色球彩票
设计一个程序,模拟双色球的选号过程(6个蓝球+1个红球),
要求:生成的6个红球号码不重复数字大小在(1-33)之间,蓝球大小(1-16)之间。
思路:
1、创建一个int类型的一维数组balls,用来保存33个彩球的编号
2、创建一个boolean类型的一维数组flags,用来保存33个红球的状态,默认全部为false
(比如:flags[0]=true,意味着编号等于balls[0]的这个彩球已经被取出来了)
3、去在出号之前,先生成一个随机数,随机数的范围在33之间, 根据产生的随机数的值去balls数组里取对应位置的彩球编号:
(比如: a.产生的随机数使用index变量保存
b.如果index值为5,则先判断编号等于balls[5]的彩球有没有被取出来过
c.如果没有被取过,则取出该球,即在控制台输出该球的编号
d.如果已经被取过了,则重复步骤a,b,c; )
4、需要取6次红球(循环次数已知,可以使用for循环实现)
5、蓝球直接生成一个1-16的整数存放于arr[6];
----------------------------------------------------分割线----------------------------------------------------------------------
1 public class Test4 { 2 // 双色球彩票 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 6 int[] balls = new int[33]; 7 for(int i=0;i<33;i++){ 8 balls[i]=i+1; 9 } 10 int[] jg=new int[7]; //存放机选号码的数组 11 int j=0; 12 boolean[] flags = new boolean[33]; 13 int index; 14 for(int i=0;i<6;i++){ 15 do{ 16 index = (int)(Math.random()*33+1); 17 if(flags[index]==false){ 18 // System.out.print(balls[index]+" "); //红球 19 jg[j++]=balls[index]; 20 flags[index]=true; 21 break; 22 } 23 }while(flags[index]); 24 25 } 26 jg[6]=(int)(Math.random()*16+1); // 蓝球 27 28 System.out.println("机选号码为: "); 29 for(int e:jg){ 30 System.out.print(e+" "); 31 } 32 } 33 }
Java 用两个一维数组实现双色球彩票
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。