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  }


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM