利用一维数组编写双色球中奖程序(只判断单式彩票)

news/2024/11/30 20:45:51/

一、程序规则要求

1、双色球”彩票投注区分为红色球号码区和蓝色球号码区;
2、“双色球”每注投注号码由6个红色球号码和1个蓝色球号码组成;
3、红色球号码从1--33中选择;蓝色球号码从1--16中选择;
4、红色号码不能重复出现。
5、中奖金额规则

在这里插入图片描述

二、分步解析

1、利用函数产生随机数获取到我们的双色球幸运奖号码牌,可使用Random获取随机值;
理论上也可使用(int)(Math.random()*100)%33;获取到红色球号码牌;
math.random生成随机数范围为(0,1],乘以100,强转为int范围为(0,100);
再取模可得(0,33)随机数,考虑到概率分布啥的就不使用这个了;
也可math.random()*33+1取到(0,33】,都可以尝试下;
最后会附上整个程序代码;
该部分代码为:
for (int i = 0; i < luckyBall.length - 1; i++) {// 随机生成6个幸运红球;int luckyNumber = random.nextInt(32) + 1;while (isExist(luckyNumber, luckyBall)) {// 如果存在该球则重新随机luckyNumber = random.nextInt(32) + 1;}luckyBall[i] = luckyNumber;//	System.out.println("第" + i + "次");}luckyBall[luckyBall.length - 1] = random.nextInt(15) + 1;// 随机生成一个幸运蓝球;
2、上面看到一个方法isExsit(),该方法用于判断随机得到的数和数组里目前存储的数是否存在相同的;
因为luckyBall数组我直接定义的长度为7,所以不需要额外扩容什么操作;
自己买的号码myBall我使用的是数组扩容调用;
该方法代码如下:
// 判断生成的或者录入的球号是否存在重复值的方法,规则不允许public static boolean isExist(int luckyNumber, int[] luckyBall) {for (int i = 0; i < luckyBall.length; i++) {if (luckyNumber == luckyBall[i]) {return true;}}return false;}
3、获取了幸运号码,也得完成用户买的号码,用户购买双色球红球范围(0,33】,蓝球(0,16】;
需要判断用户输入是否在这个区间,不在区间则重新输入;
此处由于不确定用户可能输错多少次不在范围内的数;所以使用while循环;
一共需要输入有效的6个红球值,外层循环6次,内层循环直到输入合法才break退出内层while循环;
使用数组进行存储每一次的红球值;
此处需利用数组的一个方法;
Arrays.copyOf(数组名,扩至多少长度);该方法是jdk里带有的可直接扩数组的方法;
此部分代码如下:
//以下生成用户录入数据,保证合理合规while (myBall.length < 6) {while (true) {System.out.print("请您输入您要购买的第" + (myBall.length + 1) + "个红球号码:");int number = scan.nextInt();if (number < 1 || number > 33) {System.out.println("请重新输入1-33的整数:");} else {if (isExist(number, myBall)) {System.out.println("已经选过该数,无法再次选择");} else {myBall = Arrays.copyOf(myBall, myBall.length + 1);myBall[myBall.length - 1] = number;//	System.out.println("当前已挑选完成的红球号码为" + Arrays.toString(myBall));break;}}}}while (true) {// 用户挑选蓝球System.out.println("请您输入您要购买的蓝球号码:");int number = scan.nextInt();if (number < 1 || number > 16) {System.out.println("请重新输入1-16的整数:");} else {myBall = Arrays.copyOf(myBall, myBall.length+1);myBall[myBall.length - 1]=number;break;}}
4、有了随机值产生的数组,有了自己选的号码数组;
又在前面控制过,红球中不会出现相同值,那么我们只需要遍历我们的选号每一个;
拿去和幸运号码数组对比,有一个标记一下;
此处需要注意,红球对比的数为6个,即从下标0开始只能到下标5,所以需要length-1即<6进行遍历
//下面找到红球蓝球中奖个数int equalRedNumber = 0;// 存储红球中奖个数;System.out.println(myBall.length);System.out.println(Arrays.toString(luckyBall));for (int i = 0; i < myBall.length-1; i++) {for (int j = 0; j < myBall.length-1; j++) {if (myBall[i] == luckyBall[j]) {equalRedNumber++;}}}int equalBuleNumber = 0;// 存储蓝球中奖个数;if (myBall[myBall.length - 1] == luckyBall[luckyBall.length - 1]) {equalBuleNumber++;}
5、有了红球中奖数和蓝球中奖数,再根据规则编写if else中奖条件便完成了。

三、整个程序代码

package day08.work;import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class TwoColor {public static void main(String[] args) {Scanner scan = new Scanner(System.in);Random random = new Random();int[] luckyBall = new int[7];// 已知的中奖为7个球号码int[] myBall = {};
// 下面系统生成球for (int i = 0; i < luckyBall.length - 1; i++) {// 随机生成6个幸运红球;int luckyNumber = random.nextInt(32) + 1;while (isExist(luckyNumber, luckyBall)) {// 如果存在该球则重新随机luckyNumber = random.nextInt(32) + 1;}luckyBall[i] = luckyNumber;//	System.out.println("第" + i + "次");}luckyBall[luckyBall.length - 1] = random.nextInt(15) + 1;// 随机生成一个幸运蓝球;System.out.println("这里输出系统自动生成的随机数作为幸运号码,用于测试。"+Arrays.toString(luckyBall));
//以下生成用户录入数据,保证合理合规while (myBall.length < 6) {while (true) {System.out.print("请您输入您要购买的第" + (myBall.length + 1) + "个红球号码:");int number = scan.nextInt();if (number < 1 || number > 33) {System.out.println("请重新输入1-33的整数:");} else {if (isExist(number, myBall)) {System.out.println("已经选过该数,无法再次选择");} else {myBall = Arrays.copyOf(myBall, myBall.length + 1);myBall[myBall.length - 1] = number;//	System.out.println("当前已挑选完成的红球号码为" + Arrays.toString(myBall));break;}}}}while (true) {// 用户挑选蓝球System.out.println("请您输入您要购买的蓝球号码:");int number = scan.nextInt();if (number < 1 || number > 16) {System.out.println("请重新输入1-16的整数:");} else {myBall = Arrays.copyOf(myBall, myBall.length+1);myBall[myBall.length - 1]=number;break;}}//下面找到红球蓝球中奖个数int equalRedNumber = 0;// 存储红球中奖个数;System.out.println(myBall.length);System.out.println(Arrays.toString(luckyBall));for (int i = 0; i < myBall.length-1; i++) {for (int j = 0; j < myBall.length-1; j++) {if (myBall[i] == luckyBall[j]) {equalRedNumber++;}}}int equalBuleNumber = 0;// 存储蓝球中奖个数;if (myBall[myBall.length - 1] == luckyBall[luckyBall.length - 1]) {equalBuleNumber++;}System.out.println("红中"+equalRedNumber+"蓝中"+equalBuleNumber);
//下面得出用户是否中奖if (equalRedNumber == 6 && equalBuleNumber == 1) {System.out.println("恭喜您获得一等奖500w");} else if (equalRedNumber == 6) {System.out.println("恭喜您获得二等奖100w");} else if (equalRedNumber == 5 && equalBuleNumber == 1) {System.out.println("恭喜您获得三等奖3000");} else if (equalRedNumber == 5 || (equalRedNumber == 4 && equalBuleNumber == 1)) {System.out.println("恭喜您获得四等奖200");} else if (equalRedNumber == 4 || (equalRedNumber == 3 && equalBuleNumber == 1)) {System.out.println("恭喜您获得五等奖10");}/** else if((equalRedNumber==2&&equalBuleNumber==1)||(equalRedNumber==1&&* equalBuleNumber==1)||equalBuleNumber==1) { System.out.println("恭喜您获得六等奖5");*/else if (equalBuleNumber == 1) {System.out.println("恭喜您获得六等奖5");} else {System.out.println("感谢您为公益事业做出的贡献!");}}// 判断生成的或者录入的球号是否存在重复值的方法,规则不允许public static boolean isExist(int luckyNumber, int[] luckyBall) {for (int i = 0; i < luckyBall.length; i++) {if (luckyNumber == luckyBall[i]) {return true;}}return false;}
}

http://www.ppmy.cn/news/183403.html

相关文章

用Python预测双色球福利彩票中奖号码(请不要当真)

前言 双色球是中国福利彩票的一种玩法。 红球一共6组&#xff0c;每组从1-33中抽取一个&#xff0c;六个互相不重复。然后蓝球是从1-16中抽取一个数字&#xff0c;这整个组成的双色球 python从零基础入门到实战 今天&#xff0c;我们就用Python来统计一下各号码的中奖概率&…

昨天是他中奖了

昨天上班 我发现客户公司的人都没上班 我才知道是西方的圣诞节 他们放假了 我们“外包打杂人员”...... 你懂的 所以到点 我们大家都下班了 对&#xff0c;到点就走&#xff01; &#xff08;ps&#xff1a;一般是不会这样&#xff09; 回来的路上看见超市做活动 关注公众号抽奖…

为什么说买彩票是交智商税?

很多人都有一夜暴富的幻想&#xff0c;梦想着好运来临&#xff0c;从此咸鱼翻身&#xff0c;这种心态可以理解&#xff0c;现在经济不景气&#xff0c;工作又辛苦&#xff0c;钱越来越难赚&#xff0c;想来想去能够实现财富自由最轻松的方式就是买彩票了。 我以前也经常买彩票…

java课程设计-彩票购买抽奖程序

一、项目简介 功能描述&#xff1a; 模拟福利彩票36选7&#xff0c;实现彩票的抽奖与中奖通知功能。 1.允许注册用户&#xff0c;用户信息包括用户id,用户名&#xff0c;密码&#xff0c;账户金额&#xff0c;电话号码等属性。 2.允许注册用户购买彩票&#xff1a;手动选号、随…

彩票游戏题目练习

假设你想开发一个玩彩票的游戏&#xff0c;程序随机地产生一个两位数的彩票&#xff0c;提示用户输入一个两位数&#xff0c;然后按照下面的规则判定用户是否能赢。 1)如果用户输入的数匹配彩票的实际顺序&#xff0c;奖金10 000美元。 2)如果用户输入的所有数字匹配彩票的所有…

七乐彩中奖彩票分析

# 七乐彩投注号码范围为01&#xff5e;30&#xff0c; # 七乐彩每期从30个号码中开出7个基本号码和1个特别号码作为中奖号码&#xff0c; # 七乐彩玩法即是竞猜开奖号码中的7个基本号码和1个特别号码&#xff0c;顺序不限 import random # 生成机选的号码 def makeRandomNum():…

猜数字游戏 这是要买彩票中奖的征兆吗?

我的程序&#xff1a;01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2013, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称&#xff1a;test.cpp 06.* 作 者&#xff1a;王鲁峰 07.* 完成日期&#xff1a;2013 年 11月17 日 08.* 版 本 号…

《JAVA练习题目1》 模拟彩票中奖

import java.util.Scanner;public class text {public static void main(String[] args) {// TODO Auto-generated method stubint number[] new int[7];Scanner scan new Scanner(System.in);int user[] new int[7];System.out.println("请输入您选定的号码&#xff1…