十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.util.Scanner;
创新互联是一家专注网站建设、网络营销策划、小程序制作、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上1000家成都OPP胶袋各业的企业公司提供互联网服务。现在,服务的上1000家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
/**
*
*/
public class f {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
System.out.print("请输入抽奖号码上限:");
int max = scan.nextInt();
System.out.print("请输入抽奖次数:");
int n = scan.nextInt();
System.out.print("中奖号码依次为:");
for(int i=0;in;i++){
System.out.print((int)(Math.random()*max+1)+" ");
}
}
}
截图:
选取红色球号码方法:
/**
* 随机选取红色球
*
* 获取1~33其中一个数
*
* 0 = Math.random 1
*/
private int randomOneRedValue() {
int randomValue = (int) (Math.random() * 33 + 1);
return randomValue;
}
选取蓝色球号码方法:
/**
* 随机选取蓝色球号码
*
* 获取1~16的数值
*
* @return
*/
private int randomOneBlueValue() {
int randomValue = (int) (Math.random() * 15 + 1);
return randomValue;
}
测试:
public class Test1 {
public static void main(String[] arg) {
Test1 localTest1 = new Test1();
// 双色球 :红色球号码 + 蓝色球号码
// 六个红色球和一个蓝色球号码
// 红色球号码从1~33中选择
// 蓝色球号码从1~16中选择
// 一等奖:七个号码相符(六个红色号码和一个蓝色球号码)(红色球号码顺序不限,下同)
// 二等奖:六个红色球号码相符;
// 三等奖:五个红色球号码,或者四个红色球号码和一个蓝色球号码相符;
// 四等奖:五个红色球号码,或者三个红色球号码和一个蓝色球号码相符;
// 五等奖:四个红色球号码,或者三个红色球号码和一个蓝色球号码相符;
// 六等奖:一个蓝色球号码相符(有误红色球号码相符均可);
// 例如:红色球号码 01 06 13 19 24 28 蓝色球号码 16
System.out.println("开始出奖");
// 定义双色球数组,大小为7
String[] values = new String[7];
for (int i = 0; i 7; i++) {
if (i == 6) {
int blueValue = localTest1.randomOneBlueValue();
if (blueValue 10) {
values[i] = "0" + blueValue;
} else {
values[i] = String.valueOf(blueValue);
}
} else {
int redValue = localTest1.randomOneRedValue();
if (redValue 10) {
values[i] = "0" + redValue;
} else {
values[i] = String.valueOf(redValue);
}
}
}
System.out.println();
System.out.println("出奖结束");
System.out.println();
System.out.print("双色球开奖号码:");
// 打印双色球号码
for (String value : values) {
System.out.print(" " + value);
}
}
}
抽取问题, 重点是 同一个学号不能重复被抽取.
解决办法很多,
比如数组可以使用下标来标记,号码是否被使用,使用了就继续下一次抽取
也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了
参考代码:数组法
import java.util.Random;
public class Test {
public static void main(String[] args) {
int stuNums=30;
int[] nums=new int[stuNums];//存储学号的数组
boolean[] flags=new boolean[stuNums];//标记,用于标记对应下标的学号是否已经被抽取过了
for (int i = 0; i stuNums; i++) {
nums[i]=i+1;//给学号赋值
}
Random r=new Random();
while(true){
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("A等:"+nums[index]);
flags[index]=true; //标记已经被使用过了
break;
}
}
for (int i = 0; i 2; i++) {
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("B等:"+nums[index]);
flags[index]=true;
}else{
i--;//如果已经被抽取过了 ,那么i建议,再次循环
}
}
for (int i = 0; i 3; i++) {
int index = r.nextInt(stuNums);
if(!flags[index]){
System.out.println("c等:"+nums[index]);
flags[index]=true;
}else{
i--;
}
}
}
}
集合法
import java.util.ArrayList;
import java.util.Collections;
public class Test2 {
public static void main(String[] args) {
int stuNums=20;
ArrayListInteger list=new ArrayListInteger();
for (int i = 0; i stuNums; i++) {
list.add(i+1);
}
System.out.println("有序"+list);
Collections.shuffle(list);//打乱顺序
System.out.println("乱序"+list);
System.out.println("A等"+list.get(0));
System.out.println("B等"+list.get(1));
System.out.println("B等"+list.get(2));
System.out.println("C等"+list.get(3));
System.out.println("C等"+list.get(4));
System.out.println("C等"+list.get(5));
}
}
public class Lucky {
public static void main(String[] args){
System.out.println("请输入您的4位会员卡号:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt(); //接收用户从控制台输入的会员卡号,并保存在会员卡号变量中
int a = number/1000; //千位
int b = number%1000/100; //百位
int c = number%100/10; //十位
int d = number%10; //个位
if((a+b+c+d)20){
System.out.println("恭喜中奖!您是幸运客户");
}else{
System.out.println("谢谢参与!");
}
}
}
最基础的 没有异常判断 无限循环输入什么东西