写一个彩票程序:30选7。

具体题目:写一个彩票程序:30选7。然后从键盘输入7个数,然后随机(1~30之间)生成7个随机数,注意不能重复,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:选用合适的容器和算法。(说明:键盘输入可以使用Scanner类)

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Testb {
	
	/*构造一个方法getLuck*/
	public static HashSet<Integer> getLuck() {
		HashSet<Integer> s = new HashSet<Integer>();
		while (s.size() < 7) {
			/*生成7个数字 并放入HashSet的s当中*/
			int n = (int) (Math.random() * 30 + 1);
			s.add(n);
		}
		return s;
	}
 
 
 
	public static void main(String[] args) {
		
		HashSet<Integer> s = new HashSet<Integer>();
		s = getLuck();
		
		int x;
		int bingo = 0;
		
		/*输入数字*/
		System.out.println("请输入7个数字,请勿重复");
		Scanner sc = new Scanner(System.in);
		
		for (int i = 0; i < 7; i++) {
			x = sc.nextInt();
			/*contains方法判断输入的数字是否在s当中,num用来统计具体有多少个数字在里面*/
			if (s.contains(x)) {
				bingo++;
			}
		}
		
		/*根据条件进行判断中奖的情况*/
		
		System.out.println("中了"+bingo+"个号码");
		
		if (bingo == 7) {
			System.out.println("一等奖");
		} 
		
		else if (bingo == 6) {
		System.out.println("二等奖");
		} 
		
		else if (bingo == 5) {
		System.out.println("三等奖");
		} 
		
		else {
		System.out.println("没有中奖");
		}
	}


}


对于本题的理解:根据题目要求,首先是要生成7个随机数,然后再从键盘输入进去7个数字,让这两者进行比较,再根据有多少个相同的结果再判断中奖情况。那么在主函数输入7个数字之前。先定义一个方法getLuck(),在里面定义好一个HashSet类的s,用来存放随机生成的数字,然后再返回。在主函数当中,就用Scanner类从键盘输入进去7个数字,由于我们在上面的方法getLcuk()当中,设置的是HashSet类型的s,那么可以利用contains方法,将键盘输入的数字与随机生成的数字进行比较,contains方法可以判断里面的元素,用if语句判断,如果有出现的话会返回true,所以利用bingo进行累计,看看有多个号码中了。最后就根据条件,看看有多少个号码中了,对应中了几等奖。

总结:
1.HashSet的add方法用来存放它的对象
2.hashset.contains(x)方法用来判断是否有包括在hashset当中是否包含了x元素

猜你喜欢

转载自blog.csdn.net/mmmm0303/article/details/106224275
今日推荐