package shuzu;
import java.util.Random;
/**
* 1 實作對應的要求: 雙色球結果生成
雙色球中有2組數字球,前面是紅色球,共計33個,要求隨機生成6個不重復的結果;后面是藍色球,藍色球是16個,隨機生成1個
按照要求生成對應的結果,并且將紅色球按從小到大的順序排列并輸出整體結果(要求:如果數字小于10,則輸出結果前面需要補0)
(輸出示例: 紅色球: 02 07 11 22 25 33 藍色球: 09 )
* @author Administrator
*
*/
public class Test3_16_1 {
public static void main(String[] args) {
System.out.println("紅色球:");
int red[]=new int [6];
for (int i = 0; i < red.length; i++) {
red[i]=(int) (Math.random()*32+1);
/* for (int j = 0; j< red.length-1; j++) {
for (int k = 0; k < red.length-1-j; k++) {
if(red[k]>red[k+1]) {
int temp =red[k+1];
red[k+1]=red[k];
red[k]=temp;
}
}
}*/
if(red[i]<10) {
System.out.println("0"+red[i]);
}else {
System.out.println(""+red[i]);
}
}
System.out.println("藍色球:");
int bule[]=new int [1];
for (int i1 = 0; i1 < bule.length; i1++) {
bule[i1]=(int) (Math.random()*16);
if(bule[i1]<10) {
System.out.println("0"+bule[i1]);
}else {
System.out.println(""+bule[i1]);
}
}
}
}
uj5u.com熱心網友回復:
紅球陣列【1,33】,每次隨機取出一個,陣列則洗掉取出的數,這樣就不重復了uj5u.com熱心網友回復:
package test.lt20;
import java.util.Arrays;
public class Test09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] ar = new int[33];
for(int i = 0; i < 33; i++) {
ar[i] = i + 1;
}
for(int i = 0; i < 6; i++) {
int idx = (int)(Math.random() * (33 - i));
int temp = ar[33 - 1 - i];
ar[33 - 1 - i] = ar[idx];
ar[idx] = temp;
}
int[] ar2 = new int[6];
System.arraycopy(ar, 33 - 6, ar2, 0, 6);
Arrays.sort(ar2);
for(int i: ar2) {
System.out.printf("%02d\t", i);
}
}
}
uj5u.com熱心網友回復:
這是另一種做法,我試了uj5u.com熱心網友回復:
arraycopy?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/117450.html
標籤:Java SE
