A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

模拟彩票投注,提示用户输入5个1-10之间的数字,(每个数字用,隔开,并且不能重复,)作为投注号码
* 然后随机生成四个数字作为中奖号码,定义一个方法传入投注号码,和中奖号码,打印出用户所中的号码 PS:组成中奖号码的四个数字彼此之间不能重复

12 个回复

倒序浏览
我帮你解决
回复 使用道具 举报
[Java] 纯文本查看 复制代码
package com.lxy.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;

/**
 *模拟彩票投注,提示用户输入5个1-10之间的数字,(每个数字用,隔开,并且不能重复,)作为投注号码
 *然后随机生成四个数字作为中奖号码,定义一个方法传入投注号码,和中奖号码,打印出用户所中的号码 
 *PS:组成中奖号码的四个数字彼此之间不能重复 
 */
public class Test17 {
   public static void main(String []args)throws Exception{
	   System.out.println("请输入5个1-10之间的数字,(每个数字用,隔开,并且不能重复,)");
	   BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
	   String con=reader.readLine();
	   String []value= con.split(",");
	   int []tarValue=new int[value.length];
	   for(int i=0;i<value.length;i++){
		   tarValue[i]=Integer.parseInt(value[i]);
	   }
	   
	   compar(tarValue,randomMath());
	   
	   
   }
   //比较两个数组
   public static void compar(int [] tarValue,int[] value){
	   boolean flag=false;
	    for(int i=0;i<value.length;i++){
	    	for(int j=0;j<tarValue.length;j++){
	    		if(value[i]==tarValue[j]){
	    			System.out.println("中奖号码:"+tarValue[j]);
	    			flag=true;
	    		}else{
	    			flag=false;
	    		}
	    	}
	    }
	    if(!flag){
	    	System.out.println("不好意思,没中奖!");
	    }
	   
   }
   //随机生成四个数字(并且不能重复)
   public static int[] randomMath(){
	   int []a=new int[10];
	   Random random=new Random();
	   int i=0;
	   while(i<4){
		   boolean flag=false;//表示该数组是否存在相等的情况
		   int math=random.nextInt(Integer.MAX_VALUE);//随机生成int数据范围的数字
		   for(int j=0;j<a.length;j++){
			   if(math==a[j]){
				   flag=true;
			   }
		   }
		   if(!flag){
			   a[i]=math;
			   i++;
		   }else{
			   a[i]=math;
		   }
		  
	  }
	   
	   return a;
   }
}
回复 使用道具 举报
学习学习
回复 使用道具 举报
回复 使用道具 举报
aA772807986 发表于 2016-11-13 22:16
[mw_shl_code=java,true]package com.lxy.test;

import java.io.BufferedReader;

这解法真帅,我先解读一下代码。我刚才在写另外一道题了,也遇到了一点问题,我发布了另外一个主题,对你来说应该算不上是挑战了,有兴趣可以去看看。
回复 使用道具 举报

嗯嗯,good good study,day day up!
回复 使用道具 举报
Jarc 高级黑马 2016-11-13 23:58:31
8#
投注号码可以有查表法来完成,随机角标
回复 使用道具 举报
数字除去重复用集合就好,
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
mfsara 中级黑马 2016-11-15 18:20:34
10#
只有联系敲代码,可以先抄讲师代码
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
先用随数生成5个不同的数(用条件判断不能与原来的相同),然后再比对键入的五个数(for循环遍历)。。。
回复 使用道具 举报
回复 使用道具 举报
用math.random生成  ,当输入后,把输入的转换成字符串, 遍历后与数字比较;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马