1. 程式人生 > >Java 用兩個一維數組實現雙色球彩票

Java 用兩個一維數組實現雙色球彩票

flag true 模擬 用兩個 div for arr 全部 lean

設計一個程序,模擬雙色球的選號過程(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 用兩個一維數組實現雙色球彩票