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

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;}
}

相关文章:

  • 【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解
  • 激光扫描仪的用途及优势
  • Java常用注解通俗解释
  • 【计算机视觉】目标检测:深度解析YOLOv5:下一代实时目标检测框架实战指南
  • UniApp 小程序嵌套 H5 页面显示隐藏监听实践
  • CentOS NFS共享目录
  • 关于3D的一些基础知识
  • Objective-C Block 底层原理深度解析
  • WEBSTORM前端 —— 第2章:CSS —— 第4节:盒子模型
  • phpstudy修改Apache端口号
  • (开源)视频画面增强模型:Ev-DeblurVSR (可以解决视频画面不清晰的问题)
  • C++之类和对象:构造函数,析构函数,拷贝构造,赋值运算符重载
  • 从Transformer原理角度来看,prompt设置输出字数限制会生效的原因
  • 8.idea创建maven项目(使用Log4j日志记录框架+Log4j 介绍)
  • Java后端程序员学习前端之html
  • 关于浏览器对于HTML实体编码,urlencode,Unicode解析
  • gem5-gpu 安装过程碰到的问题记录 关于使用 Ruby + Garnet
  • RabbitMQ 启动报错 “crypto.app“ 的解决方法
  • 余额分账和代付有什么区别?
  • AVL树左旋右旋的实现
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 美的集团一季度净利增长38%,库卡中国机器人接单增超35%
  • 习近平访问金砖国家新开发银行
  • 建发股份:将于5月6日召开股东大会,审议提名林茂等为公司新一届董事等议案
  • 人到中年为何腰围变粗?科学家发现腹部脂肪增加的细胞元凶
  • 太好玩了!坐进大卫·霍克尼的敞篷车进入他画笔下的四季