java 彩票中奖程序
1 import java.io.*; 2 import java.util.Scanner; 3 import java.util.Random; 4 public class Lottery { 5 public int[] Ran(int x,int z,int y,int Is_repeat){//产生z到y的x个随机数, 6 //Is_repeat为0时随机数可以重复,1时不能重复 7 System.out.print("中奖号:"); 8 int[] R=new int[x]; 9 Random RR=new Random(); 10 for(int i=0;i<x;i++){ 11 R[i]=RR.nextInt(y-1)+z; 12 while(Is_repeat==1&&Exist(R[i],R,i)!=-1) 13 R[i]=RR.nextInt(y)+1;//若随机数重复,就重新生成 14 System.out.print(R[i]+"\t"); 15 } 16 return R; 17 }; 18 public int Exist(int x,int r[],int number_r){//数字x是否存在于r 19 for(int i=0;i<number_r;i++){ 20 if(x==r[i]) 21 return i; 22 } 23 return -1; 24 } 25 public int Ncount(int[] a,int number_a,int r[],int number_r,int queue){ 26 //两个数组之间有几个相同的数, 27 //数目为number_a的a数组在数目为number_r的r数组有几个相同的数,若queue=1时 28 //返回的数为有连续相同的位数的个数,为0时则不用连续 29 System.out.println(); 30 System.out.print("选择号:"); 31 int count=0; 32 if(queue==0){ 33 for(int i=0;i<number_a;i++){ 34 System.out.print(a[i]+"\t"); 35 if(new Lottery().Exist(a[i], r, number_r)!=-1) 36 count++; 37 } 38 } 39 else{ 40 int teap=0; 41 for(int i=0;i<number_a-1;i++){ 42 System.out.print(a[i]+"\t"); 43 int s=new Lottery().Exist(a[i], r, number_r); 44 if(s!=-1){ 45 teap++; 46 if(s<number_a-1&&a[i+1]==r[s+1]){ 47 continue; 48 } 49 else{ 50 if(teap>count){ 51 count=teap; 52 teap=0; 53 } 54 } 55 } 56 } 57 System.out.print(a[number_a-1]+"\t"); 58 } 59 return count; 60 } 61 62 public static void main(String[]args){ 63 String game1="玩法1(21选5):输入五个不重复的数(从1到21选)"; 64 System.out.println(game1); 65 String game2="玩法2(6+1):输入7个数字,最后一位特别号(从0到9选)"; 66 System.out.println(game2); 67 System.out.print("请问您选择哪种玩法(1/2):"); 68 //BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); 69 Scanner idata=new Scanner(System.in); 70 int s=idata.nextInt(); 71 try{ 72 //s=in.readLine(); 73 if(s==1||s==2){ 74 if(s==1){ 75 System.out.println("请输入五个不重复的数:"); 76 int[] a=new int[5]; 77 a[0]=idata.nextInt(); 78 a[1]=idata.nextInt(); 79 a[2]=idata.nextInt(); 80 a[3]=idata.nextInt(); 81 a[4]=idata.nextInt(); 82 int[] ran=new Lottery().Ran(5,1,21,1); 83 int count0=new Lottery().Ncount(a,5,ran,5,0); 84 System.out.println(); 85 System.out.println("count0="+count0); 86 switch(count0){ 87 case 0: 88 case 1: 89 case 2: 90 System.out.println("未得奖,相同个数为——"+count0); 91 break; 92 case 3: 93 System.out.println("三等奖,相同个数为——"+count0); 94 break; 95 case 4: 96 System.out.println("二等奖,相同个数为——"+count0); 97 break; 98 case 5: 99 System.out.println("一等奖,相同个数为——"+count0); 100 break; 101 } 102 } 103 else{ 104 System.out.println("请输入七个数:"); 105 int[] a=new int[7]; 106 a[0]=idata.nextInt(); 107 a[1]=idata.nextInt(); 108 a[2]=idata.nextInt(); 109 a[3]=idata.nextInt(); 110 a[4]=idata.nextInt(); 111 a[5]=idata.nextInt(); 112 a[6]=idata.nextInt(); 113 int[] ran=new Lottery().Ran(7,0,10,0); 114 int count0=new Lottery().Ncount(a,7,ran,7,1); 115 System.out.println(); 116 System.out.println("count0="+count0); 117 switch(count0){ 118 case 0: 119 case 1: 120 case 2: 121 System.out.println("未得奖,连续相同个数为——"+count0); 122 break; 123 case 3: 124 System.out.println("四等奖,连续相同个数为——"+count0); 125 break; 126 case 4: 127 System.out.println("三等奖,连续相同个数为——"+count0); 128 break; 129 case 5: 130 System.out.println("二等奖,连续相同个数为——"+count0); 131 break; 132 case 6: 133 System.out.println("一等奖,连续相同个数为——"+count0); 134 break; 135 case 7: 136 System.out.println("特等奖,连续相同个数为——"+count0); 137 break; 138 } 139 } 140 141 }else 142 System.out.println("输入有误"); 143 }catch(Exception e){System.out.println(e);}; 144 145 } 146 }