包之道;
導入Java . util . hashset;
導入Java . util . random;
導入Java . util . scanner;
導入Java . util . set;
/**
* @作者蔔飛
* @ datetime August 31,2020 15:54:11
*/
公共類搖號{
公共靜態void main(String[] args) {
string xian = " = = = = = = = = = = ";
//起止獎數量?指定數字的個數
int start = 0,end = 0,prizeNum = 0,defan um = 0;
System.out.println(西安);
System.out.println("歡迎來到xxx彩票系統!");
System.out.println(西安);
Scanner scanner =新掃描儀(system . in);
System.out.println("請輸入數字範圍如1 10:");
start = scanner . nextint();
end = scanner . nextint();
System.out.println("請輸入獲獎人數:");
prize num = scanner . nextint();
System.out.println("請輸入指定數量的中獎號碼,否則請輸入0:");
defan um = scanner . nextint();
int[]defa = new int[defan um];
if (defaNum!= 0) {
System.out.println("請輸入指定中獎號碼,以空格分隔:");
for(int I = 0;我& ltdefaNumi++) {
defa[I]= scanner . nextint();
}
}
System.out.println(西安);
System.out.println("本次彩票中獎號碼為");
for (int num : randomDraw(start,end,prizeNum,defa)) {
system . out . print(num+" ");
}
}
/**
* @param開始彩票範圍的起點
* @param end?彩票號碼範圍結束
* @param prizeNum中獎號碼
* @param defa指定中獎號碼。
* @返回
*/
公共靜態集& lt整數& gtrandomDraw(int start,int end,int prizeNum,int[] defa) {
設置& lt整數& gtset = new HashSet & lt& gt();
//沒有指定中獎號碼。
if (defa.length == 0) {
//隨機抽取prizeNum獎品
while(set . size()& lt;prizeNum) {
set.add(new Random()。nextInt(end-start+1)+start);
}
返回集合;
}否則{
//指定中獎號碼。
//添加指定的數字。
for (int num : defa) {
set . add(num);
}
//如果沒有全部指定,繼續抽取剩余獎品。
while(set . size()& lt;prizeNum - defa.length) {
set.add(new Random()。nextInt(end-start+1)+start);
}
返回集合;
}
}
}
2.操作效果如圖。
中獎號碼是指定的。
沒有指定中獎號碼。
沒有指定中獎號碼。