首页 > 编程 > Java > 正文

java机试-抽奖

2019-11-06 07:59:51
字体:
来源:转载
供稿:网友

题目要求

现在要编写一个抽奖程序,已知有1000个人员进行抽奖,编号分别为00001,00002……01000。每次抽取的时候,随机抽取到其中5个,一共抽取10次。 要求抽出的50个人,不能重复。

java

public class M002 { public static Set<String> set = new HashSet<String>(); public static List<String> list = new ArrayList<String>(); public static void main(String[] args) { getList(); luckDraw(); } public static void luckDraw() { M002 m02 = new M002(); for (int i = 0; i < 10; i++) { System.out.PRintln("第" + (i + 1) + "次抽奖结果:"); set = m02.getWinners(); Iterator<String> iter = set.iterator(); System.out.print(iter.next()); while (iter.hasNext()) { System.out.print(" " + iter.next()); } System.out.println(); // 清空set,否则getWinners方法无效 set.removeAll(set); } // System.out.println(list.size()); } public static void getList() { for (int i = 0; i < 1000; i++) { String s = M002.getString(i + 1); M002.list.add(s); } } public Set<String> getWinners() { while (set.size() < 5) { int num = (int) (Math.random() * list.size()); String s = list.get(num); set.add(s); list.remove(num); } return set; } public static String getString(int in) { String add0 = ""; for (int i = 0; i < 5 - (in + "").length(); i++) { add0 += "0"; } String res = add0 + in; return res; }

运行结果

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表