题目要求:
投注号码由 6 个红色号码和 1 个蓝色号码组成(一共七个球)
红色球号码从 1~33 中选择
蓝色球号码从 1~16 中选择
中奖类型:
一等奖一个
中 6 个红球和 1 个蓝球
奖金 1000 万元
二等奖一个
中 6 个红球和 0 个蓝球
奖金 500 万元
三等奖一个
中 5 个红球和 1 个蓝球
奖金 3000 元
四等奖两个
中 5 个红球和 0 个蓝球 或者 4 个红球和 1 个蓝球
奖金 200 元
五等奖两个
中 4 个红球和 0 个蓝球 或者 3 个红球和 1 个蓝球
奖金 10 元
六等奖三个
中 2 个红球和 1 个蓝球 或者 1 个红球 和 1 个蓝球 或者 0 个红球和 1 个蓝球
程序说明:
对于输入错误进行了处理
以方法编写为主
文中很多小细节需读者自己发现
import java.util.Random;
import java.util.Scanner;
public class shuangSeQiu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = createNum();
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
// System.out.println();
int[] userInputNumArr = userInputNum();
System.out.println("中奖号码是:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("您的双色球号码是:");
for (int i = 0; i < userInputNumArr.length; i++) {
System.out.print(userInputNumArr[i] + " ");
}
System.out.println();
int redNumCount = 0;
int blueNumCount = 0;
for (int i = 0; i < userInputNumArr.length - 1; i++) {
int redNum = userInputNumArr[i];
for (int j = 0; j < arr.length - 1; j++) {
if (redNum == arr[j]) {
redNumCount++;
break;
}
}
}
int blueNum = userInputNumArr[userInputNumArr.length - 1];
if (blueNum == arr[arr.length - 1]) {
blueNumCount++;
}
if (redNumCount == 6 && blueNumCount == 1) {
System.out.println("恭喜你!中了一等奖!奖金1000万元!");
} else if (redNumCount == 6 && blueNumCount == 0) {
System.out.println("恭喜你!中了二等奖!奖金500万元!");
} else if (redNumCount == 5 && blueNumCount == 1) {
System.out.println("恭喜你!中了三等奖!奖金3000元!");
} else if (redNumCount == 5 && blueNumCount == 1) {
} else if ((redNumCount == 5 && blueNumCount == 0) || ((redNumCount == 4 && blueNumCount == 1))) {
System.out.println("恭喜你!中了四等奖!奖金200元!");
} else if ((redNumCount == 4 && blueNumCount == 0) || (redNumCount == 3 && blueNumCount == 1)) {
System.out.println("恭喜你!中了五等奖!奖金10元!");
} else if ((redNumCount == 2 && blueNumCount == 1) || (redNumCount == 1 && blueNumCount == 1) || (redNumCount == 0 && blueNumCount == 1)) {
System.out.println("恭喜你!中了六等奖!奖金5元!");
} else {
System.out.println("未中奖!谢谢您的参与!");
}
}
public static int[] userInputNum() {
int[] arr = new int[7];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length - 1; ) {
System.out.println("请您输入第" + (i + 1) + "个红球的号码:");
int redNum = sc.nextInt();
if (redNum > 0 && redNum <= 33) {
boolean flag = judgeNum(arr, redNum);
if (flag) {
System.out.println("您输入的号码重复了!");
} else {
arr[i] = redNum;
i++;
}
} else {
System.out.println("你输入的数超出规则范围!");
}
}
System.out.println("请您输入蓝球的号码:");
while (true) {
int blueNum = sc.nextInt();
if (blueNum > 0 && blueNum <= 16) {
arr[arr.length - 1] = blueNum;
break;
} else {
System.out.println("你输入的数超出规则范围!请重新输入:");
}
}
return arr;
}
public static int[] createNum() {
int[] arr = new int[7];
Random r = new Random();
for (int i = 0; i < arr.length - 1; ) {
int redNum = r.nextInt(33) + 1;
boolean flag = judgeNum(arr, redNum);
if (!flag) {
arr[i] = redNum;
i++;
}
}
int blueNum = r.nextInt(16) + 1;
arr[arr.length - 1] = blueNum;
return arr;
}
public static boolean judgeNum(int arr[], int num) {
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
flag = true;
break;
}
}
return flag;
}
}