A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈宁 中级黑马   /  2014-11-30 11:01  /  1224 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//双色球机选
public class DoubleColourBall {
        public static void main(String[] args) {
                int []  reds=new int[33];
                //把红球的每一个元素生成出来。
                for(int a=0;a<33;a++){
                        reds[a]=a+1;
                }
                //选6个红球
                //定义一个开关数组,用于标记生成过的下标。
                boolean[] flags =new boolean[33];
                //定义一个将会生成的红球数组。
                int [] chReds=new int[6];
                int index;//表示随机生成的下标。
                System.out.println("机选一注:");
                for(int a=0;a<6;a++){
                        do{
                                index=(int)(Math.random()*33);
                        }while(flags[index]==true);
                        flags[index]=true;
                        chReds[a]=reds[index];
                }
                //红球数组排序 :
                for(int a=0;a<chReds.length-1;a++){
                        for(int b=0;b<chReds.length-a-1;b++){
                                if(chReds[b]>chReds[b+1]){
                                        int temp=chReds[b];
                                        chReds[b]=chReds[b+1];
                                        chReds[b+1]=temp;
                                }
                        }
                }
                //遍历排序后的红球数组:
                System.out.print("红球:");
                for(int a=0;a<chReds.length;a++){
                        System.out.print(chReds[a]+" ");
                }
                System.out.print(" 蓝球 :"+(int)(Math.random()*16+1));
        }
}

4 个回复

倒序浏览
之前写过一个 不过代码找不到了~~
回复 使用道具 举报
刚才看了另一哥们写的,比较严谨,考虑到了输出时为1位数时前面要加0.这个是我没有考虑到的。不过这个倒还好解决,可以用一个固定数组,也可以用if来解决。只是看我这个代码貌似有点多了。麻烦大家优化一下。
回复 使用道具 举报
本帖最后由 g124989452 于 2014-11-30 20:04 编辑

private void red() {

                List<Integer> redNumber = new ArrayList<Integer>();
                for (int i = 1; i < 34; i++) {
                        redNumber.add(i);
                }
                Collections.shuffle(redNumber);
                Set<Integer> redSort = new TreeSet<Integer>();
                for (int i = 0; i < 6; i++) {
                        redSort.add(redNumber.get(i));
                }
                for (Integer red : redSort) {
                        System.out.print((red > 9 ? red : "0" + red)+" ");
                }
        }

        private void blue() {
                int blue = new Random().nextInt(16)+1;
                System.out.println(" " + (blue > 9 ? blue : "0" + blue));
        }

点评

多谢,很好。貌似是集合的知识吧!还没学到那。  发表于 2014-11-30 22:15
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马