模拟双色球

投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1 - 33选择;蓝色球号码从1 - 16中选择。

package com;import java.util.Random;
import java.util.Scanner;public class Test {public static void main(String[] args) {// 1.随机一组中奖号码,6个红球号码不重复(1 - 33)和一个蓝球号码(1 - 16),采用数组装起来int[] luckNumbers = createLuckNumbers();// 2.用户录入一组随机号码:6个不重复的红球号码(1 - 33)和1个蓝球号码(1 - 16)int[] userNumbers = userInputNumbers();// 3.判断用户中奖情况judge(luckNumbers,userNumbers);}/** 1.* 随机一组中奖号码并返回,6红(1-33之间不重复),1蓝(1-16)* @return:随机生成7个中奖号码的数组*/public static int[] createLuckNumbers(){// 1.定义一个动态初始化数组,存储7个数字int[] numbers = new int[7];// 遍历数组,为每个位置随机生成一个中奖号码// 2.遍历数组的前6个位置,生成6个不重复的红球号码(1-33)Random r = new Random();for(int i = 0;i < numbers.length - 1;i++){while (true) {int number = r.nextInt(33) + 1;// 标记位/信号位:定义一个flag变量,默认为当前位置随机生成的number是没有重复的boolean flag = true; // 一开始认为number是没有重复的for(int j = 0;j < i;j++){if(numbers[j] == number){ // number重复了,修改标记位flag = false;break; // 跳出并结束当前for循环,再随机一次}}// 说明number没有重复,可以将number存入到数组中去了if(flag){numbers[i] = number; // 将number存入到数组的当前位置break; // 跳出并结束当前死循环,进入下一次循环}}}// 3.为数组的第7个位置/最后一个位置,生成一个1-16之间的蓝球号码numbers[numbers.length - 1] = r.nextInt(16) + 1;// 4.返回随机生成中奖号码的数组return numbers;}/** 2.* 用户随机录入一组中奖号码,6个红球号码(1 - 33)和1个蓝球号码(1 - 16)* @return:返回用户录入7个随机中奖号码的数组*/public static int[] userInputNumbers(){// 1.定义一个动态初始化数组,存储用户录入的7个随机号码int[] numbers = new int[7];// 2.遍历数组的前6个位置,用户依次录入红球号码(1 - 33)且要求不重复Scanner sc = new Scanner(System.in);for(int i = 0;i < numbers.length - 1;i++){while (true) {System.out.println("请您录入第" + (i + 1) + "个红球号码(1 - 33),要求不重复:");int number = sc.nextInt();if(number < 1 || number > 33){System.out.println("您当前录入的第" + (i + 1)  + "个号码" + number + "不符合要求!");continue; // 跳出当前死循环的当次执行,进入下一次死循环}// 3.定义一个flag变量,默认number没有重复boolean flag = true;for(int j = 0;j < i;j++){if(numbers[j] == number){ // 说明number重复了flag = false; // number重复了,修改标记位System.out.println(number + "出现重复,请重新录入!");break;  // 跳出并结束当前for循环,再次录入一次}}// 说明number没有重复,可以存入到数组中去了if(flag){numbers[i] = number;break; // 跳出并结束当前死循环,进入下一次循环}}}// 4.为数组的第7个位置/最后一个位置生成一个篮球号码(1 - 16)while(true){System.out.println("请您录入第" + (numbers.length) + "个蓝球号码(1 - 16):");int number = sc.nextInt();// 5.定义一个flag变量,默认认为number在1-16之间boolean flag = true;if(number < 1 || number > 16){ // number不符合要求flag = false; // number不符合要求,修改标记位System.out.println("您录入的" + number + "不符合规则,请重新录入!");continue; // 跳出当前死循环的当次执行,进入下一次循环}// number符合要求if(flag){ // number符合要求,可以存入到数组中去了numbers[numbers.length - 1] = number;break; // 跳出并结束当前死循环的执行}}return numbers;}/** 3.* 判断用户中奖情况的方法* @param luckNumbers:系统随机的幸运号码* @param userNumbers:用户录入的号码*/public static void judge(int[] luckNumbers,int[] userNumbers){// 1.定义两个变量,分别记录红球命中个数和蓝球命中个数int redHitNumber = 0; // 红球命中个数int blueHitNumber = 0; // 蓝球命中个数// 2.遍历数组的前6个位置,记录红球的命中个数for(int i = 0;i < luckNumbers.length - 1;i++){for(int j = 0;j < userNumbers.length - 1;j++){if(userNumbers[j] == luckNumbers[i]){redHitNumber++;break; // 跳出并结束内部for循环的执行,进入下一次比对}}}// 3.比较数组的第7个位置/最后一个位置,记录蓝球是否命中blueHitNumber = luckNumbers[luckNumbers.length - 1] == userNumbers[userNumbers.length - 1] ? 1 : 0;System.out.println("中奖号码是:");printArray(luckNumbers);System.out.println("您投注的号码是:");printArray(userNumbers);System.out.println(redHitNumbers > 0 ? "您命中了" + redHitNumbers + "个红球!" : "您没有命中红球!");System.out.println(blueHitNumbers == 1 ? "您命中了蓝球!" : "您没有命中蓝球!");if(redHitNumber == 6 && blueHitNumber == 1){System.out.println("恭喜您喜中1000万!");}else if(redHitNumber == 6 && blueHitNumber == 0){System.out.println("恭喜您喜中500万!");}else if(redHitNumber == 5 && blueHitNumber == 1){System.out.println("恭喜您喜中3000元!");}else if(redHitNumber == 5 && blueHitNumber == 0 || redHitNumber == 4 && blueHitNumber == 1){System.out.println("恭喜您喜中200元!");}else if(redHitNumber == 4 && blueHitNumber == 0 || redHitNumber == 3 && blueHitNumber == 1){System.out.println("恭喜您喜中10元!");}else if(redHitNumber <= 2 && blueHitNumber == 1){System.out.println("恭喜您喜中5元!");}}/** 4.* 打印数组的方法* @param arr:要打印的数组*/public static void printArray(int[] arr){System.out.print("[");for(int i = 0;i < arr.length;i++){System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");}System.out.println("]");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32577.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

年轻人的第一支牙刷,“少年”国风定制,BYCOOMagic电动牙刷体验

刷牙是每个人每天必做的事&#xff0c;普通牙刷由于清洁力度不够&#xff0c;无法做到深层次刷牙清理&#xff0c;加上刷牙时间不足&#xff0c;因此大多数人属于敷衍式刷牙。欲善其事、先利其器&#xff0c;要想科学刷牙&#xff0c;电动牙刷必不可少&#xff0c;最近我就入手…

第三方ipad笔哪个牌子好用?ipad触控笔推荐平价

至于选择苹果原装的电容笔&#xff0c;还是平替的电容笔&#xff0c;要看个人的需求而定&#xff0c;比如画图用的&#xff0c;可以用Apple Pencil&#xff1b;比如学习记笔记用的&#xff0c;可以用平替电容笔&#xff0c;目前的平替电容笔无论是品质还是性能&#xff0c;都非…

咦?智能颈部按摩仪还能语音播报,快搞起来!

一、档位切换实现 1、档位实现原理 按摩仪共设置15个档位&#xff0c;可以控制按摩的力度&#xff0c;通过BOOST升压电路实现。 通过P8口产生PWM波&#xff0c;调节PWM输出的正占空比来实现升压&#xff0c;详细的硬件原理可参考硬件部分关于升压原理的介绍&#xff0c;具体数…

电动牙刷/洗牙器出口欧盟CE认证测试标准EN 60335

电动牙刷/洗牙器在这两年开始被很多厂家看中这块的发展&#xff0c;因为据调查了解到&#xff0c;电动牙刷比普通牙刷更能够清除牙菌减少牙龈&#xff0c;更好的做到了清洁的作用。 在欧美国家几乎所有的人都使用电动牙刷&#xff0c;是一款普遍流行的日用品&#xff0c;因此在…

oh-my-posh - 终端个性化工具 - 美化PowerShell / cmd - 好物分享,真香~

一. 什么是oh-my-posh? Oh My Posh 是一款终端个性化工具&#xff0c;支持 Windows、Linux&#xff08;WSL&#xff09;、macOS 系统上的 PowerShell、bash、zsh 等终端&#xff0c;可以配置不同主题达到个性化的效果。 本篇文章&#xff0c;将以PowerShell终端为例&#xff0…

酷科技 | Amabrush电动牙刷:10秒就可以完成刷牙

刷牙是我们每天都要做的事情&#xff0c;虽然整个过程不过两三分钟&#xff0c;但无论是早上急急忙忙的起床&#xff0c;还是晚上困意来袭&#xff0c;忘记刷牙或者随便糊弄一下&#xff0c;已经成为了很多人经常会做的事情。 牙齿的健康很重要&#xff0c;因此刷牙这件事虽小但…

PaddleSpeech 流式语音识别系统 PP-ASR

(以下内容搬运自 PaddleSpeech) PP-ASR 目录 1. 简介2. 特点3. 使用教程 3.1 预训练模型3.2 模型训练3.3 模型推理3.4 服务部署3.5 支持个性化场景部署 4. 快速开始 1. 简介 PP-ASR 是一个 提供 ASR 功能的工具。其提供了多种中文和英文的模型&#xff0c;支持模型的训练&a…

飞利浦 PHILIPS 电动牙刷HX6730 拆解

今日&#xff0c;一直比较喜欢用的电动牙刷&#xff0c;飞利浦HX6730坏掉了&#xff0c;初步感觉考虑飞利浦的保修&#xff0c;但是发现发票找不到了。飞利浦的客服也说&#xff0c;电动牙刷的两年保修依据分别是&#xff1a;1、发票开据日期&#xff1b;2、在无发票的情况下&a…

CES Asia:藏在儿童电动牙刷里的科技

科技巨头苹果公司常常对外表达的观念是&#xff0c;产品的核心是使用者&#xff0c;科技是用来解决问题&#xff0c;让产品设计得能帮助使用者生活得更美好&#xff0c;科技要做的是帮助人们拥有完成原本无法做到的事的能力。苹果公司认为科技应当藏身幕后&#xff0c;而不是走…

两款黑科技、高颜值电动牙刷正面PK,如何选择性价比是关键

随着人们生活水平的提升,近年来,各种黑科技层出不穷,对我们的生活带来了巨大的改变,甚至可以说是“武装到了牙齿”——例如目前不少厂商推出了智能声波电动牙刷(以下简称:电动牙刷),让刷牙也变得极具科技感。 目前市面上的电动牙刷品牌众多、鱼龙混杂,但在性能、质量…

WTV380语音芯片在儿童电动牙刷应用,可降低企业30% BOM成本!

概述&#xff1a;儿童电动牙刷控制的组成&#xff0c;需要一颗丰富资源的MCU芯片&#xff0c;主要起到按键信号采集、压力传感器信号采集、电机控制、音乐/提示功能&#xff0c;而需要实现电动牙刷的这些功能&#xff0c;产品开发设计工程师需要用到一颗IO资源丰富&#xff0c;…

2021年中国电动牙刷销售及发展趋势分析:国产品牌崛起[图]

一、电动牙刷产业链 电动牙刷是利用振动的机芯带动刷头旋转或振动以达到洁牙的效果。电动牙刷产业链随着市场产品的不断推出&#xff0c;产业链生态逐步完善&#xff0c;推动市场稳步发展。电动牙刷上游主要是牙刷丝、塑料外壳材料和电机、电池等&#xff0c;中游各类别电动牙刷…

文华财经数据导出工具

软件用于文华财经数据的格式化导出&#xff0c;通过简单设置文华财经的安装路径即可。当第一次打开工具时&#xff0c;出现文华财经的安装路径设置。请点击浏览并定位到文华财经的安装目录&#xff0c;如&#xff1a;D:\Tools\wh6通用版&#xff0c;确认后进入主程序。 第二次更…

如何用python爬取新浪财经

通过python爬取新浪财经的股票历史成交明细 要求 通过新浪财经爬取历史数据&#xff1a;http://market.finance.sina.com.cn/transHis.php?symbolsz000001&date2021-04-27&page60 要求&#xff1a;输入日期和股票代码后将一天所有的记录存入一个csv文件&#xff0c;…

文华财经期货K线多周期画线技术,多重短线技术共振通道线指标公式——多周期主图自动画线

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

文华财经期货指标短线精灵,期货多空信号5分钟K线战法短线操作技巧

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

文华财经指标公式源码学习

HJ_1:(HHV(HIGH,36)-CLOSE)/(HHV(HIGH,36)-LLV(LOW,36))*100; HJ_2:SMA(HJ_1,3,1); HJ_3:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; HJ_4:SMA(HJ_3,5,1)-8; 常态能量监控:HJ_4-HJ_2,COLORYELLOW,LINETHICK0; 狂飙临界能量:HJ_4-HJ_2,COLORRED,LINETHICK0; 0; STICKLIN…

财经郎眼:区块链是陷阱还是馅饼?颠覆性概念技术如何真正落地

2014年1月27日&#xff0c;财经郎眼首次聊比特币&#xff0c;题目是《比特币真相》&#xff1b;那时比特币的市场价是800美元。 2017年1月23日&#xff0c;财经郎眼再次聊比特币&#xff0c;题目是《五问比特币》&#xff1b;那时比特币的市场价是900美元。 2017年11月20日&…

叩问教育公平:财经郎眼20150209

郎咸平&#xff0c;祖籍山东潍坊&#xff0c;中国台湾学者&#xff0c;经济学家。 王牧笛&#xff0c;主持人&#xff0c;北京大学法学、哲学双学位学士&#xff0c;外交学硕士&#xff0c;与郎咸平一道从经济的视角解读新闻&#xff0c;从新闻概念讲述经济。 古语有云&#…