看某破站时学到的题
这个学好了还努力什么呀!
代码如下:
import java.util.Random;
import java.util.Scanner;
public class comTest6 {
public static void main(String[] args) {
//1.咱买彩票肯定有一个中奖的号码对吧,那咱就先来生成一个中奖号码
//咋生成嘞?诶,创建个方法!
//方法创建好了,那咱来调用一下
int[] arr = createNumber();
System.out.println("======================================");//搞个分隔符号,打印出来看起来好看
//来看看这次中奖的号码是多少
System.out.println("本次奖池号码为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("======================================");
//2.中奖的号码买了,咱自己得买咱自己的号码对吧,来看看咱中没中奖
//咋搞个咱自己的号码嘞?诶,再写个方法不就好了嘛
//方法写好了,咱来调用一下
int[] userInputArr = userInputNumber();
//3.判断用户的中奖情况
int redcount = 0;
int bluecount = 0;
//咱先来判断红球
for (int i = 0; i < userInputArr.length - 1; i++) {
int redNumber = userInputArr[i];
for (int j = 0; j < arr.length - 1; j++) {
if (redNumber == arr[j]) {
redcount++;
break;
}
}
}
//然后再来判断蓝球
int blueNumber = userInputArr[userInputArr.length - 1];
if (blueNumber == arr[arr.length - 1]) {
bluecount++;
}
//4.最后根据红球个数和蓝球个数来判断中奖情况
if (redcount == 6 && bluecount == 1) {
System.out.println("恭喜你,中奖1000万");
} else if (redcount == 6 && bluecount == 0) {
System.out.println("恭喜你,中奖500万");
} else if (redcount == 5 && bluecount == 1) {
System.out.println("恭喜你,中奖3000元");
} else if ((redcount == 5 && bluecount == 0) || (redcount == 4 && bluecount == 1)) {
System.out.println("恭喜你,中奖200元");
} else if ((redcount == 4 && bluecount == 0) || (redcount == 3 && bluecount == 1)) {
System.out.println("恭喜你,中奖10元");
} else if ((redcount == 2 && bluecount == 1) || (redcount == 1 && bluecount == 1) || (redcount == 0 && bluecount == 1)) {
System.out.println("恭喜你,中奖5元");
} else {
System.out.println("谢谢参与");
}
}
//咱自己买的号码的方法:
public static int[] userInputNumber() {
//1.先创建个数组用来存储咱自己的号码
int[] arr = new int[7];
//2.买彩票的人肯定是自己录入,自己选号码对吧,那咱就得键盘录入吧
Scanner sc = new Scanner(System.in);
//咱先来输红球的中奖号码
for (int i = 0; i < 6; ) {
System.out.println("请输入第" + (i + 1) + "个红球号码");
int redNumber = sc.nextInt();
//这时候咱得判断红球号码是不是在1~33这个范围
if (redNumber >= 1 && redNumber <= 33) {
//咱还得判断这个红球号码重复没有,咱就可以调用下面的判断的方法
boolean flag1 = judge(arr, redNumber);
if (!flag1) {
//不重复就可以存到数组中
arr[i] = redNumber;
i++;
} else {
//重复了
System.out.println("该红球号码已存在,请重新输入");
}
} else {
System.out.println("该红球号码超出范围,请重新输入");
}
}
//红球输完了,然后就可以开始输蓝球
System.out.println("请输入蓝球号码");
int blueNumber = sc.nextInt();
if (blueNumber >= 1 && blueNumber <= 16) {
arr[arr.length - 1] = blueNumber;
} else {
System.out.println("该蓝球号码超出范围");
}
return arr;
}
//创建中奖号码的方法:
//中奖号码肯定是好几个数对吧,那咋放嘞?诶,用数组
public static int[] createNumber() {
//1.创建数组用来存放中奖号码,6个红球,1个蓝球,红球不能重复,蓝球可以
int[] arr = new int[7];
//2.号码肯定是随机的吧,不随机还咋玩,那这就得用到随机数
Random r = new Random();
//获取红球号码
for (int i = 0; i < 6; ) {//为啥不i++嘞?因为红球不能重复,必须得不重复才能++到下一个
int regNumber = r.nextInt(33) + 1;
//虽说获取到了6个随机的红球,但是不知道有没有重复,所以咱还得来判断一下,那咱再写个方法判断
//判断的方法写好了,咱来调用一下
boolean flag = judge(arr, regNumber);
if (!flag) {//为啥取反嘞?因为如果为true,就证明生成的这个随机数重复了,所以咱取反
arr[i] = regNumber;
i++;
}
}
//获取蓝球号码
int blueNumber = r.nextInt(16) + 1;
arr[arr.length - 1] = blueNumber;
return arr;
}
//判断号码是否重复的方法:
public static boolean judge(int[] arr, int number) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
return true;
}
}
return false;
}
}
咱先试试当大怨种的感觉:
======================================
本次奖池号码为:
27 23 11 14 8 28 10
======================================
请输入第1个红球号码
1
请输入第2个红球号码
2
请输入第3个红球号码
3
请输入第4个红球号码
4
请输入第5个红球号码
5
请输入第6个红球号码
6
请输入蓝球号码
9
谢谢参与
Process finished with exit code 0
咱再来试试当千万富翁的感觉:
======================================
本次奖池号码为:
23 28 12 27 10 2 14
======================================
请输入第1个红球号码
23
请输入第2个红球号码
28
请输入第3个红球号码
12
请输入第4个红球号码
27
请输入第5个红球号码
10
请输入第6个红球号码
2
请输入蓝球号码
14
恭喜你,中奖1000万
Process finished with exit code 0
好了好了,该醒醒了,别做梦了,还是好好学习吧!