JAVA彩票编程:

从1—33里随机的取出6个数(不允许重复),从1-16里面取一个数,构成一注彩票!详细点,最好注释下,谢谢!完成后给FEN.... 从1—33里随机的取出6个数(不允许重复),从1-16里面取一个数,构成一注彩票!详细点,最好注释下,谢谢!完成后给FEN. 展开
 我来答
匿名用户
2013-07-28
展开全部
package demo;import java.util.Random;public class Demo {
public static void main(String[] args) {
long x=0xfffL;
System.out.println(x);
Random r = new Random();
int a = (r.nextInt(33)+1);
int b = 0;
do{
b = r.nextInt(33)+1;
}while(b ==a);
int c = 0;
do{
c = r.nextInt(33)+1;
}while(c==a||c==b);
int d = 0;
do{
d = r.nextInt(33)+1;
}while(d==a||d==b||d==c);
int e = 0;
do{
e = r.nextInt(33)+1;
}while(e==a||e==b||e==c||e==d);
int f = 0;
do{
f = r.nextInt(33)+1;
}while(f==a||f==b||f==c||f==d||f==e);
int h = r.nextInt(16)+1;
System.out.println("红球号码:"+a+" "+b+" "+c+" "+d+" "+e+" "+f+" "+"蓝球号码:"+h);
}
}
//r.nextInt(33)+1 是产生1-33随机数的 思想是先产生随机数后判断相等,有相等则继续循环
匿名用户
2013-07-28
展开全部
import java.util.HashSet;
import java.util.Set;

public class Ticket {

/**
* @param args
*/
public static void main(String[] args) {

Set<Integer> ticketList = new HashSet<Integer>();
//为了保证不会重复出现,所使用HashSet,可以自动去除重复。用来保存产生的号码
int num ; //保存每次随机产生的号码
while(true){
num = (int)( 34*Math.random()); //
//使用34*Math.random().是为了产生0-33的号码,因为Math.random()
//会差生大于等于 0.0 且小于 1.0的随机数字,所以要乘以34保证能取到1-33.
if(num >=1) //因为可能随机产生0,因为会随机到小于1.0的数字,而且我们强制转类型,发生了精度丢失,
//所以,得到的数字会是小于34的正整数
ticketList.add(num); //加到集合中
if(ticketList.size() == 6) //如果集合的大小刚好为6的话,也就是随机了6个号码了,就停止
break ;
}
while(true){
num = (int)(16*Math.random()); //同产生蓝色球一样的道理
if(num >=1 )
break ;
}

System.out.println("红色球:");
for(Integer var : ticketList)
//迭代输出,HaseSet不能用for(int i = 0 ...i++)来按索引遍历,因为他是无序且无重复的集合,
//当然,可以按照楼上的兄弟给的代码输出,那是直接调用HaseSet的tostring方法吧,呵呵
System.out.print(var+"\t");
System.out.println("\n蓝色球:\n"+num);

}
}

呵呵,不知道帮到你没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-28
展开全部
import java.util.HashSet;class Test {
public static void main(String args[]) {
HashSet<Integer> hs1 = new HashSet<Integer>();
HashSet<Integer> hs2 = new HashSet<Integer>();
while (true) {
int a = (int)(Math.random() * 100);
if(a >= 1 && a <= 33) {
hs1.add(a);
}
if (hs1.size() == 6) {
break;
}
}
System.out.println(hs1);
while (true) {
int b = (int)(Math.random() * 100);
if(b >= 1 && b <= 16) {
hs2.add(b);
}
if (hs2.size() == 1) {
break;
}
}
System.out.println(hs2);
}
}谢谢采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式