標籤

二元樹 (1) 字串常數池 (1) 投資 (3) 每月損益 (37) 例外處理 (1) 泛型 (2) 股票 (15) 指標 (5) 英文 (8) 基本資料型別 (1) 期貨 (1) 程式交易 (10) 量化投資 (5) 亂亂寫 (3) 概念 (3) 資料結構 (3) 演算法 (3) 數學 (3) 轉型 (1) AMA (1) ArrayList (1) assert (1) BeautifulSoup (1) C/C++ (8) casting (1) ClassCastException (1) classpath (1) Collection (4) Comparable (1) comparTo() (1) constructor (1) database (3) Debian (1) Dropbox (2) EA (2) enum (1) equals() (2) exception (3) extends (1) ffmpeg (1) final (1) Git (1) HashMap (1) HashSet (1) hasNext() (1) HTS (3) instanceof (1) IS-A (1) Iterator (1) JAVA (43) length (1) Linux (31) List (1) Mac (6) Map (1) ML (2) MT4 (6) MySQL (2) next() (1) NullPointerException (1) Number (1) Numpy (2) OpenCart (1) OpenCV (3) OSX (1) overloading (1) overriding (3) pandas (2) PHP (8) PriorityQueue (1) Python (11) Queue (1) random() (1) reverse() (1) Samba (1) SCJP (21) sqrt() (1) synchronized (1) talib (1) ufw (1) uTorrent (1) var-args (2) VHF (1) vim (2) Yhoo知識+ (4)

2012年12月7日 星期五

Java的樂透問題


拜託在後面寫一下解釋~謝謝
1.
請設計一個程式會進行樂透的開獎&對獎的過程。也就是程式會要求使用者輸入6個1~49的相異整數,代表欲對獎的彩券號碼。然後產生6個相異整數,代表某期大樂透開獎的號碼。接著程式會對獎之,並分別輸出開獎號碼、彩券號碼(均小至大排列)及中了幾個號碼!如:
請輸入你的彩券第1個號碼(1~49)
32
請輸入你的彩券第2個號碼(1~49)
4
請輸入你的彩券第3個號碼(1~49)
31
請輸入你的彩券第4個號碼(1~49)
16
請輸入你的彩券第5個號碼(1~49)
28
請輸入你的彩券第6個號碼(1~49)
2
本期開出的號碼(由小至大排列)是:4,7,16,28,33,49
你的彩券的號碼(由小至大排列)是:2,4,16,28,31,32
你中了3個號碼

----------------------------------------------

import java.util.*;
public class BigMoney{
public static final int GUESS = 6;
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int[] input = new int[GUESS];
int[] number = new int[GUESS];
int get = 0;
makeNum(number); //產生樂透號碼

for(int i=0; i<input.length; i++){
System.out.print("請輸入你的彩券第" +i+ "個號碼(1~49):");
input[i] = Integer.parseInt(sc.nextLine()); //將輸入轉成整數存入陣列
for(int j=i; j>0; j--){
if(input[i] == input[j-1] || input[i] > 49){
System.out.println("輸入重複或超出範圍");
i--;
break;
}
}
}

Arrays.sort(number); //陣列做排序
System.out.print("本期開出的號碼(由小至大排列)是:");
for(int i: number) System.out.print(i+ " ");

Arrays.sort(input);
System.out.print("\n你的彩券的號碼(由小至大排列)是:");
for(int i: input){
for(int j: number) if(i == j) get++; //計算有中的號碼
System.out.print(i+ " ");
}
System.out.println("\n你中了" +get+ "個號碼");
}

public static void makeNum(int[] n){
for(int i=0; i<n.length; i++){
n[i] = (int)(Math.random()*49+1);
for(int j=i; j>0; j--){
if(n[i] == n[j-1]){
i--;
break;
}
}
}
}
}

沒有留言:

張貼留言