• 每日练习------实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。


    题目:实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票。可以选择买多注。

    解题关键:随机数范围的生成;红球是不重复的随机数;可以购买多注彩票

    思路:1)编写需要买的彩票数量

            2)设置红球的数组,数组长度为6

            3)随机生成红球的数字(用循环)

            4)判断随机生成的数字是否和之前的数字重复

           5)若与之前的元素有重复的为flase

            6)输出flag为true的红球数字

            7)设置蓝球的数组

    过程: 接下来我们根据我们的解题思路来一步步写代码

            1)编写需要买的彩票数量

            System.out.println("请输入您需要买的彩票注数:");
            Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();
            System.out.println("您买了" + num + "注彩票");

            2)设置红球的数组,数组长度为6

            int[] redNum = new int[6];

            3)随机生成红球的数字(用循环)
            for (int i = 1; i <= num; i++) {
                for (int j = 0; j < redNum.length; j++) {
                    boolean flag = true;//假设此时的元素都没ture
                    int redNum1 = (int) (Math.random() * 36 + 1);    
                    redNum[j] = redNum1;         

    4)判断随机生成的数字是否和之前的数字重复
                    for (int k = 0; k < j; k++) {
                        if(redNum1 == redNum[k]){

    5)若与之前的元素有重复的为flase
                            flag = false;
                            j -=1;//j自减1,这样的话这个重复的数字会重新输出一次
                            break;
                        }

           }

     6)输出flag为true的红球数字
                    if(flag){
                    System.out.print(redNum[j] + " ");
                    }

    7)设置蓝球的数组
                int blueNum = (int) (Math.random() * 15 + 1);
                System.out.print(blueNum);
                System.out.println();

       完整结果如下:

     总结:

            这个题目用到的知识点有随机数的生成,数组的赋值,还有标记,其中比较重要的是标记

            标记(代码中红色的部分):假设该变量都为true,当满足某个条件是,该变量改为false,最后用if判断输出满足条件为true或flase的变量值.

    为了方便大家使用,下面附上源码:

    1. //1)编写需要买的彩票数量
    2. System.out.println("请输入您需要买的彩票注数:");
    3. Scanner sc = new Scanner(System.in);
    4. int num = sc.nextInt();
    5. System.out.println("您买了" + num + "注彩票");
    6. //2)设置红球的数组,数组长度为6
    7. int[] redNum = new int[6];
    8. //3)随机生成红球的数字(用循环)
    9. for (int i = 1; i <= num; i++) {
    10. for (int j = 0; j < redNum.length; j++) {
    11. boolean flag = true;//假设此时的元素都没ture
    12. int redNum1 = (int) (Math.random() * 36 + 1);
    13. redNum[j] = redNum1;
    14. //4)判断随机生成的数字是否和之前的数字重复
    15. for (int k = 0; k < j; k++) {
    16. if(redNum1 == redNum[k]){
    17. //5)若与之前的元素有重复的为flase
    18. flag = false;
    19. j -=1;//j自减1,这样的话这个重复的数字会重新输出一次
    20. break;
    21. }
    22. }
    23. //6)输出flag为true的红球数字
    24. if(flag){
    25. System.out.print(redNum[j] + " ");
    26. }
    27. }
    28. //7)设置蓝球的数组
    29. int blueNum = (int) (Math.random() * 15 + 1);
    30. System.out.print(blueNum);
    31. System.out.println();
    32. }

    明日练习: 输出如下图片的内容

    大家可以自己写写,明天12点我准时发出我的写法哦,明天12点不见不散

  • 相关阅读:
    让迁移不再开盲盒,让云也能省钱丨Hackathon 项目背后的故事第一期回顾
    C语⾔:内存函数
    【操作系统】1.3.1 操作系统的运行机制
    如何读取maven依赖的jar包中的代码?
    2023年10月wxid转微信号方法
    Gopsutil/Process常用进程监控资源信息
    基于java的绿植微信小程序
    【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑
    SQL 语句的执行顺序
    万字详解java接口
  • 原文地址:https://blog.csdn.net/SSSS__AS/article/details/125993854