当前位置: 首页 > backend >正文

Java练习8

一.题目

二.源码

package TestRuMen;import java.util.Random;
import java.util.Scanner;public class Test11
{public static void main(String[] args){// 调用 createNumber 方法生成一组随机的中奖号码int[] arr=createNumber();// 调用 userInputNumber 方法获取用户输入的投注号码int[] userInputArr=userInputNumber();// 初始化红球匹配数量为 0int redCount=0;// 初始化蓝球匹配数量为 0int 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]){// 红球匹配数量加 1redCount++;// 跳出内层循环,继续检查下一个用户输入的红球号码break;}}}// 获取用户输入的蓝球号码int blueNumber=userInputArr[6];// 如果用户输入的蓝球号码与中奖蓝球号码匹配if (blueNumber==arr[6]){// 蓝球匹配数量加 1blueCount++;}// 根据红球和蓝球的匹配数量判断中奖等级并输出结果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("很遗憾,您没有中奖");}}/*** 获取用户输入的双色球投注号码。* @return 包含 6 个红球号码和 1 个蓝球号码的数组*/public static int[] userInputNumber(){// 创建一个长度为 7 的数组,用于存储用户输入的号码int[] arr=new int[7];// 创建 Scanner 对象,用于读取用户输入Scanner sc=new Scanner(System.in);// 循环获取用户输入的 6 个红球号码for (int i = 0; i < 6; ){System.out.println("请输入第"+(i+1)+"个红球号码:");// 读取用户输入的红球号码int redNumber=sc.nextInt();// 检查输入的红球号码是否在 1 到 33 的有效范围内if (redNumber>=1&&redNumber<=33){// 调用 contains 方法检查该红球号码是否已经存在于数组中boolean flag=contains(arr,redNumber);if (!flag){// 如果号码不存在,将其存入数组arr[i]=redNumber;// 索引加 1,继续获取下一个红球号码i++;}else{System.out.println("当前红球号码已存在,请重新输入");}}else{System.out.println("当前红球号码超出范围");// 索引减 1,重新获取该位置的红球号码i--;}}System.out.println("请输入蓝球号码:");// 循环获取用户输入的蓝球号码,直到输入有效为止while(true){// 读取用户输入的蓝球号码int blueNumber = sc.nextInt();// 检查输入的蓝球号码是否在 1 到 16 的有效范围内if (blueNumber >= 1 && blueNumber <= 16){// 如果号码有效,将其存入数组的最后一个位置arr[6] = blueNumber;// 跳出循环break;}else{System.out.println("当前蓝球号码超出范围");}}return arr;}/*** 生成一组随机的双色球中奖号码。* @return 包含 6 个随机红球号码和 1 个随机蓝球号码的数组*/public static int[] createNumber(){// 创建一个长度为 7 的数组,用于存储中奖号码int[] arr=new int[7];// 创建 Random 对象,用于生成随机数Random r=new Random();// 循环生成 6 个不重复的随机红球号码for (int i = 0; i < 6; ){// 生成一个 1 到 33 之间的随机整数作为红球号码int redNumber=r.nextInt(33)+1;// 调用 contains 方法检查该红球号码是否已经存在于数组中boolean flag=contains(arr,redNumber);if (!flag){// 如果号码不存在,将其存入数组arr[i]=redNumber;// 索引加 1,继续生成下一个红球号码i++;}}// 生成一个 1 到 16 之间的随机整数作为蓝球号码int blueNumber=r.nextInt(16)+1;// 将蓝球号码存入数组的最后一个位置arr[6]=blueNumber;return arr;}/*** 检查数组中是否包含指定的数字。* @param arr 要检查的数组* @param number 要查找的数字* @return 如果数组中包含该数字返回 true,否则返回 false*/public static boolean contains(int[] arr,int number){// 遍历数组中的每个元素for (int i = 0; i < arr.length; i++){// 如果当前元素等于要查找的数字if (arr[i]==number){// 返回 true,表示数组中包含该数字return true;}}// 遍历结束后未找到该数字,返回 falsereturn false;}
}

http://www.xdnf.cn/news/3010.html

相关文章:

  • GBDT算法原理及Python实现
  • 2024jxcpc D.Magic LCM (logn筛质因子)
  • 百度CarLife实现手机车机无缝互联
  • BT134-ASEMI机器人功率器件专用BT134
  • 告别碎片化!两大先进分块技术如何提升RAG的语义连贯性?
  • 【系统参数合法性校验】spring-boot-starter-validation
  • PowerBI更新后出现提示,无法正常使用,解决办法
  • JavaScript == 和 ===区别,分别在什么情况使用?
  • 角度(degrees)和弧度(radians)转换关系
  • Oracle OCP证书有效期是三年?
  • 5 个开源 MCP 服务器
  • 【MongoDB篇】MongoDB的集合操作!
  • 【angular19】入门基础教程(四):默认的css隔离作用域
  • 基于Java,SpringBoot,HTML水文水质监测预警系统设计
  • 【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动
  • 动态图表 -- eg1
  • Femap许可分配和监控
  • 4月29日星期二今日早报简报微语报早读
  • 优化PCB Via Stub系列(1):一次学会利用层叠设计降低Via Stub损耗
  • 使用 Ziegler-Nichols 法进行 PID 参数整定:实践指南
  • [计算机网络]物理层
  • 力扣-数据结构-二叉树
  • 3D可视化编辑器模版
  • AimRT 从零到一:官方示例精讲 —— 四、logger示例.md
  • 信创产业贡献︱悬镜安全深度参编《2024网信自主创新调研报告》
  • 监控易一体化运维:解锁业务系统管理,助力企业运维升级
  • SOLIDWORKS广东东莞地区代理商哪个服务好?都有哪些代理商?
  • docker 部署前、后端分离项目详细步骤(从打包到部署)
  • 嵌入式学习笔记 - 关于STM32 SPI控制器读取以及写入时,标志位TXE, RXNE的变化
  • 文献阅读(二)植被恢复力变化对不同干旱类型的空间异质性|《Earth‘s Future》