public class CaiPiao {
public static void main(String[] args) {
/*
- 大乐透彩票模拟器:
规则: 前区01-35中随机生成5个号码
模拟操作,系统自动生成号码组合,并且按从小到大的顺序输出结果后区01-12中随机生成2个号码
同时要求可以选择生成多少组(默认选项:生成1组,生成5组,生成10组)
*/
方法一**
定义两个数组,其下标长度刚好等于前区后区数字的范围
int a[]=new int[36], b[]=new int[13];
定义一个计数变量
int count=0;
采用循环遍历的方式输出前区的5个号码,不重复
while(count<5){
int num=(int)(Math.random()*35+1);
if(a[num]==0){
a[num]=1;
count++;
}
}
同样的,采用循环遍历的方式输出随机的后区2位号码
count=0;
while(count<2){
int num1=(int)(Math.random()*12+1);
if(b[num1]==0){
b[num1]=1;
count++;
}
}
//代码效果参考:http://0791zd.com/zx/art_7672.html
采用循环取数的方式输出前区与后区的彩票号码
System.out.print("前区的号码是:");
for(int i=1; i<a.length; i++){
if(a[i]==1)
System.out.print((i<10?"0"+i:i)+" ");
}
System.out.print("\n后区的号码是:");
for(int i=1; i<b.length; i++){
if(b[i]==1)
System.out.print((i<10?"0"+i:i)+" ");
}
方法二**
/*
- 常规做法(以前区号码为例)
定义一个数组、一个计数变量、两个变量
int before[] = new int[5];
int num1, num2;
//代码效果参考:http://0791zd.com/bx/art_1233.html
int count=0;
采用数组的遍历的方式取出前区的5个数,并且不重复
while(count<5){ if(count==0){ before[count] = (int)(Math.random()*35+1); }else{ int temp = (int)(Math.random()*35+1); before[count] = temp; for(int i=0; ibefore[j+1]){
int temp=before[j];
before[j]=before[j+1];
before[j+1]=temp;
bl=true;
}
}
if(!bl) break;
}
遍历输出前区号码
System.out.print("前区的号码是:");
for(int i=0; i<before.length; i++){
System.out.print((before[i]<10?"0"+before[i]:before[i])+" ");
}
*/
}
}
这是整个大乐透彩票模拟器的实现代码,其中运用到了Java程序中的数组和循环以及判断的知识。其中重点是双循环的运用和数组的遍历,需要重点掌握的是交换排序的方法和不重复取数的方法。