Java程式有個基本題目-大樂透
有幾個特徵跟分析
1.數字有49個不重複的整數
2.隨機取出6個不重複的整數
3.再重新從49個數字中取出一個特別號
這邊有用到亂數的語法
想法大概就是
1.弄個int 6的陣列+特別號的變數
2.用一個for迴圈去塞隨機數字進去陣列中
3.為了怕重複,用一個檢查重複用的flag,然後用do while迴圈的特性去檢查每一個陣列
4.印出來
接下來實做出簡單的程式碼
當然這並不貼切真實狀況
真實狀況的是
1.有兩盒49顆不重複的號碼球
2.一個個丟到箱子中用風扇吹阿吹的攪混他
3.靠近出口的一個個讓他從出口跑出來
這東西我目前也寫出一個類似的程式碼了
但是還不是完全貼近就是了
我也不打算讓他完全模仿,畢竟目前還是練習寫程式邏輯的階段
目前我覺得該支程式應該算練習差不多了
另外文章再分享吧
public static void main(String[] arge){
String result="";//印答案
String result2="";//印排序後答案
int lottery[]=new int [6];//樂透六個號碼
int special;//特別號
boolean flagRepeat=false;//驗證是否重複的旗標
int x=0;//準備接隨機號
java.util.Random randomInt =new java.util.Random();//宣告亂數
for(int i=0;i<lottery.length;i++){
do{
flagRepeat=false;
x=randomInt.nextInt(49)+1;//取出0~48 +1模擬出1~49
for(int j=0;j<=i;j++){
if(x==lottery[j]){
flagRepeat=true;
break;
}
}
}while(flagRepeat);//重複繼續做
lottery[i]=x;//x沒重複 丟進去陣列
}
special=randomInt.nextInt(48)+1;//開特別號
result+="開獎(未排序):\t";
for(int i:lottery){
result+=i+"\t";
}
System.out.println(result+"特別號:\t"+special);
result2+="開獎(未排序):\t";
for(int i=0;i<lottery.length-1;i++){
for(int j=i+1;j<lottery.length;j++){
if(lottery[i]>lottery[j]){
int temp=0;
temp=lottery[i];
lottery[i]=lottery[j];
lottery[j]=temp;
}
}
}
for(int i:lottery){
result2+=i+"\t";
}
System.out.println(result2+"特別號:\t"+special);
}