close

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);
    }

arrow
arrow
    文章標籤
    Java
    全站熱搜
    創作者介紹
    創作者 蒼木浩界 的頭像
    蒼木浩界

    蒼木浩界之家

    蒼木浩界 發表在 痞客邦 留言(0) 人氣()