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

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

12 个回复

正序浏览
用math.random生成  ,当输入后,把输入的转换成字符串, 遍历后与数字比较;
回复 使用道具 举报
回复 使用道具 举报
先用随数生成5个不同的数(用条件判断不能与原来的相同),然后再比对键入的五个数(for循环遍历)。。。
回复 使用道具 举报
mfsara 中级黑马 2016-11-15 18:20:34
10#
只有联系敲代码,可以先抄讲师代码
回复 使用道具 举报
数字除去重复用集合就好,
回复 使用道具 举报
Jarc 高级黑马 2016-11-13 23:58:31
8#
投注号码可以有查表法来完成,随机角标
回复 使用道具 举报

嗯嗯,good good study,day day up!
回复 使用道具 举报
aA772807986 发表于 2016-11-13 22:16
[mw_shl_code=java,true]package com.lxy.test;

import java.io.BufferedReader;

这解法真帅,我先解读一下代码。我刚才在写另外一道题了,也遇到了一点问题,我发布了另外一个主题,对你来说应该算不上是挑战了,有兴趣可以去看看。
回复 使用道具 举报
很简单的
回复 使用道具 举报
学习学习
回复 使用道具 举报
[mw_shl_code=java,true]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=Integer.parseInt(value);
           }
          
           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==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=math;
                           i++;
                   }else{
                           a=math;
                   }
                  
          }
          
           return a;
   }
}
[/mw_shl_code]
回复 使用道具 举报
我帮你解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马