老师给的彩票程序:输入一组号码,与系统随机生成的一组号码对比,中奖概率太小。
* 于是稍微改了一下:
* 1.中奖号码组A由我们输入,而购买的号码组B随机生成,将两A与B进行比较,若不相同则继续随机生成B,直到相同为止,返回B随机生成的次数;
* 2.中奖号码组A由系统随机生成,购买的号码组B也随机生成,将两A与B进行比较,若不相同,A保持不变,B继续随机生成,直到相同为止,返回B随机生成的次数;
* B随机生成的次数即为达到中奖时,购买彩票的次数;(基础班未毕业,就这水平了。。。)
======代码如下======
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class ZhongCai {
public static void main(String[] args) {
System.out.println("¥这是一个模拟福彩3D中奖的小程序¥"+"\n");
System.out.println("****请选择要进行的操作****"+"\n"+"1.三个中奖号码随机生成"+"\n"+"2.手动输入三个中奖号码"+"\n");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch(num){
case 1: //随机生成的三个号码与随机生成的三个号码比较
System.out.println("随机生成的中奖号码为:");
int[] arrSj = getArr();
System.out.println("\n");
System.out.println("随机生成的号码为:");
compare(arrSj);
break;
case 2: //手动输入的三个号码与随机生成的三个号码比较
int[] arrSd=getArrs();
System.out.println("手动输入的中奖号码为:");
for(int i = 0;i<arrSd.length;i++){
System.out.print(arrSd[i]+"\t");
}
System.out.println("\n");
System.out.println("随机生成的号码为:");
compare(arrSd);
break;
default:
System.out.println("输入有误,谢谢使用");
}
}
public static void compare(int[] arr){ //比较两串号码是否一样的方法,并且一直比较直到相同为止
int m = 0;
while(true){
int[] suiji=getArr();
m++;
if((Arrays.equals(arr, suiji))){
System.out.println("\n");
System.out.println("恭喜你中奖了");
System.out.println("一共买了"+m+"注才中奖,你的学费我包了~~");
return;
}else{
System.out.println("");
}
}
}
public static int[] getArr(){ //随机生成彩票号码的方法
System.out.println();
int[] arr = new int[3];
for(int i = 0;i<arr.length;i++){
Random r = new Random();
int n = r.nextInt(10);
arr[i]=n;
System.out.print(n+"\t");
}
return arr;
}
public static int[] getArrs(){ //手动输入中奖号码的方法
int[] arrs = new int[3];
Scanner sc = new Scanner(System.in);
System.out.println("请手动输入中奖号码(0~9):");
for(int x = 0;x<arrs.length;x++){
System.out.println("请输入第"+(x+1)+"个号码:");
int a = sc.nextInt();
if(a>=0&&a<=9){
arrs[x] =a;
}else{
System.exit(0);
System.out.println("输入有误谢谢使用");
// return ;
}
}
return arrs;
}
}
|
|