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循环实现)

      /************************************************************************************************/
public class Test4 {
             //  双色球彩票
public static void main(String[] args) {
// TODO Auto-generated method stub
 
int[] balls = new int[33];
            for(int i=0;i<33;i++){
            balls[i]=i+1;
            }
            int[] jg=new int[7];   //存放机选号码的数组
            int j=0;
            boolean[] flags = new boolean[33];
            int index;
            for(int i=0;i<6;i++){
                do{
                    index = (int)(Math.random()*33+1);
                    if(flags[index]==false){
                        // System.out.print(balls[index]+"  ");     //红球
                        jg[j++]=balls[index];
                        flags[index]=true;
                        break;
                  }
                }while(flags[index]); 
                
            }
         jg[6]=(int)(Math.random()*16+1);    // 蓝球
         
         System.out.println("机选号码为: ");
         for(int e:jg){
            System.out.print(e+" ");
         }
   }
 }

5、蓝球直接生成一个1-16的整数存放于arr[6];
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值