投注问题:

看某破站时学到的题

 这个学好了还努力什么呀!

 代码如下:

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

好了好了,该醒醒了,别做梦了,还是好好学习吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值