题目:
随机生成一组中奖号码:6个红球号码和一个蓝球号码组成,红球号码在1-33之间,蓝球号码在1-16之间,用户输入一组双色球号码,判断中奖情况
代码:
public class yunsuan {
public static void main(String[] args) {
int[] luckyNumber = creatLuckyNumbers();
int[] userChooseNumber = userChooseNumbers();
judge(luckyNumber,userChooseNumber);
}
//随机生成一组中奖号码
public static int[] creatLuckyNumbers() {
int[] number = new int[7];
Random r = new Random();
//生成前6位号码,1-33
for (int i = 0; i < number.length; i++) {
//解决生成数会重复的问题,和前面数字不重复时赋值
while (true) {
int n = r.nextInt(33);//0-32 0-33
//信号标
boolean flag = true;
for (int j = 0; j < i; j++) {
if (n == number[j]) {
flag = false;
break;
}
}
if (true) {
number[i] = n;
break;
}
}
}
//生成蓝球号码,1-16
number[number.length - 1] = r.nextInt(16);// 0-15 1-16
return number;
}
//用户选择一组号码
public static int[] userChooseNumbers(){
Scanner sc = new Scanner(System.in);
int[] number = new int[7];
for (int i = 0; i <number.length-1; i++) {
System.out.println("请输入第" + i +"个红球号码");
int data = sc.nextInt();
number[i] = data;
}
System.out.println("请输入蓝球号码:");
int data = sc.nextInt();
number[number.length-1] = data;
return number;
}
//判断有没有中奖
//红球命中几个,蓝球命中几个
public static void judge(int[] luckyNumber,int[] userNumber){
int red = 0;
int blue = 0;
//判断红球命中个数
for (int i = 0; i < luckyNumber.length - 1; i++) {
for (int j = 0; j < userNumber.length - 1; j++) {
if(luckyNumber[j]==userNumber[i]){
red ++;
break;
}
}
}
//判断蓝球命中个数
if(luckyNumber[6]==userNumber[6]){
blue++;
}
System.out.println("红球命中:"+red+"个");
System.out.println("蓝球命中:"+blue+"个");
System.out.println("中奖号码为"+Arrays.toString(luckyNumber));
System.out.println("您的号码为"+Arrays.toString(userNumber));
}
}