题目
写一个彩票的模拟程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先在注释中写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】
答案1(推荐)
import java.util.*;
/*
在第2种方法中,采用了List数组的随机排序方法,这样就不需要刚开始非常麻烦地考虑数字重复的问题了;
然后将前7个存入到数组中;
然后,将输入的数字与数组中的数字进行比较到底有几个数字是重合的;
*/
public class Main
{
public static void main(String[] args)
{
ArrayList<Integer> l=new ArrayList<Integer>();
for(int i=0;i<31;i++)
{
l.add(i);
}
Collections.shuffle(l);//对容器中的数字随机排序;
System.out.println("7个中奖数字是: ");
int []a=new int[7];
for(int i=0;i<7;i++)
{
a[i]=l.get(i);
System.out.print(l.get(i)+" ");