题目:6个红球1~33不重复,1个蓝球1~16,0+1 1+1 2+1六等奖,3+1 4+0五等奖,4+1 5+0四等奖,5+1三等奖,6+0二等奖,6+1一等奖
首先需要创建一个系统随机生成的中奖号码:
public static int[] creatNumber(){
int ball[]=new int[7];
Random r=new Random();
for (int i = 0; i < ball.length-1; ) {
int red=r.nextInt(33)+1;
boolean contains=contains(ball,red);
if(!contains){
ball[i]=red;
i++;
}
}
int blue=r.nextInt(16)+1;
ball[6]=blue;
return ball;
}
由于红球元素不可重复,因此需要一个判断数组中是否存在某元素的方法,如果不存在 则存入数组,如果存在重新随机生成元素再次判断,只有在元素存入数组后 再进行i++,且蓝球不进行重复判断
判断数组元素重复:
public static boolean contains(int arr[], int num) {
for (int i = 0; i < arr.length; i++) {
if (num == arr[i]) {
return true;
}
}
return false;
}
有了系统生成的中奖号码后,就该用户输入自己的号码了:需要进行用户输入元素是否符合范围的判断,以及用户输入的红球元素是否重复的判断,蓝球不进行重复判断
public static int[] inputUsers(){
int choose[]=new int[7];
Scanner sc= new Scanner(System.in);
System.out.println("输入红球号码:");
for (int i = 0; i < choose.length-1; ) {
int input=sc.nextInt();
if(input>0 && input<=33){
boolean contain=contains(choose,input);
if(!contain){
choose[i]=input;
i++;
}else {
System.out.println("红球不可重复");
}
}else {
System.out.println("红球范围1~33");
}
}
System.out.println("输入蓝球号码:");
while (true) {
int input=sc.nextInt();
if(input>0 && input<=16){
choose[choose.length-1]=input;
break;
}else {
System.out.println("蓝球范围1~16");
}
}
return choose;
}
有了系统生成的中奖号码,有了用户输入的号码,就该将两个数组进行比对,统计红蓝球猜中的个数:
public static int redCnt(int ball[],int choose[]){
int cnt=0;
for (int i = 0; i < ball.length-1; i++) {
for (int j = 0; j < choose.length-1; j++) {
if(ball[i]==choose[j]){
cnt++;
break;
}
}
}
return cnt;
}
public static int blueCnt(int ball[],int choose[]){
int cnt=0;
if(ball[6]==choose[6]){
cnt=1;
}
return cnt;
}
最后在主函数中依据统计出的个数对中奖结果进行输出:
int ball[]=creatNumber();
int choose[]=inputUsers();
System.out.println("中奖号码:");
for (int i = 0; i < ball.length; i++) {
System.out.print(ball[i]+" ");
}
System.out.println();
System.out.println("你的号码:");
for (int i = 0; i < choose.length; i++) {
System.out.print(choose[i]+" ");
}
int redcnt=redCnt(ball,choose);
int bluecnt=blueCnt(ball,choose);
if((redcnt==0 && bluecnt==1) || (redcnt==1 && bluecnt==1) || (redcnt==2 && bluecnt==1)){
System.out.println("六等奖");
} else if ((redcnt==3 && bluecnt==1) || (redcnt==4 && bluecnt==0)) {
System.out.println("五等奖");
}else if ((redcnt==4 && bluecnt==1) || (redcnt==5 && bluecnt==0)) {
System.out.println("四等奖");
}else if ((redcnt==5 && bluecnt==1)) {
System.out.println("三等奖");
}else if ((redcnt==6 && bluecnt==0)) {
System.out.println("二等奖");
}else if ((redcnt==6 && bluecnt==1)){
System.out.println("一等奖");
}else {
System.out.println("谢谢惠顾");
}
OVER~~