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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Flyxiang 中级黑马   /  2016-12-1 00:37  /  1486 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package Demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

/*
* 模拟 双色球 彩票机选程序.
双色球规则 :    一共 选 7 个号.  6个红色 , 1 蓝色的
红色球1-33中选6个,号码不能重复. 蓝色球16选1,号码不能重复.
红色   1- 33      
蓝色   1- 16
打印出机选结果 . 格式 :
红球: 12,15,18,20,30,33蓝球: 12 .

*/
public class Demo {

        public static void main(String[] args) {
               
                int[] arr=new int[33];
                //调用向arr数组填充1-33的数字的方法
                getArr(arr);
               
                //创建集合 ,并调用方法添加元素
                ArrayList<Integer> list=new ArrayList<Integer>();
                list=getList(list,arr);
               
               
                //调用数组遍历方法
                //printArr(arr);
               
                //创建彩票数组
                int[] newArr=new int[7];
                newArr=getNewArr(list,newArr);
               
                //将彩票数组冒泡排序
                Arrays.sort(newArr,0,newArr.length-1);
                //打印结果
                printResult(newArr);
               
               
        }
       
        //彩票打印结果的方法
        public static void printResult(int[] arr){
       
                String str1="红球:";
                String str2="篮球:";
               
                for (int i = 0; i < arr.length; i++) {
                       
                        if(i<arr.length-2){
                                str1+=arr[i]+",";
                        }else if(i==arr.length-2){
                                str1+=arr[i];
                        }else{
                                str2+=arr[i]+".";
                        }
                }
                System.out.println(str1+str2);
        }
       
        //数组向集合的转变
        public static ArrayList<Integer> getList(ArrayList<Integer> list,int[] arr){
                for (int i : arr) {
                        list.add(i);
                }
                return list;
        }
        //向arr数组填充1-33的数字的方法
        public static void getArr(int[] arr){
               
                for(int i=0; i<arr.length; i++){
                       
                        arr[i]=i+1;
                }
        }
       
        //遍历数组
        public static void printArr(int[] arr){
                for (int i : arr) {
                        System.out.println(i);
                }
        }
       
        //生成正确的彩票数组
        public static int[] getNewArr(ArrayList<Integer> list,int[] newArr){
                Random sj=new Random();
               
                for (int i = 0; i < newArr.length; i++) {
                        if(i!=newArr.length-1){
                        int index=sj.nextInt(33-i);
                        newArr[i]=list.get(index);
                        list.remove(index);
                        }else{
                                newArr[i]=sj.nextInt(16)+1;
                        }
                }
                return newArr;
        }
       
       
}

6 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
看看....
回复 使用道具 举报
今天就第一阶段考试了,写的没看懂
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
看看......................
回复 使用道具 举报
这是第一阶段的么 很难如果学了 set 和 collections 好一点把
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马