一道Java题目:一项抽奖活动要求你从整数1-49之间选择6个不同的数字,编写一个程序来完成这项工作,并生成5组只局限用FOR,不许使用数组,越简单越好!

解决方案 »

  1.   

    public static void main(String[] args) {
      Random ran = new Random();
      String str = "";
      String k = "";
      for(int i=1; i<=5; i++) {
        for(int j=1; j<=6; j++){        
          while(str.indexOf(k) >= 0) {
            k = ran.nextInt(50) + " ";
          }
          str += k;
        }
        str += "|";
      }
      
      String[] groups = str.split("\\|");
      for(int i=0; i<groups.length; i++) {
        System.out.println(groups[i].trim());
      }
    }
      

  2.   

    写错了,改一下:k = ran.nextInt(49) + 1 + " ";
      

  3.   

    public class A
    {
    public static void main(String args[])
    {
     for(int i=1;i<=49;i++)
      {
         for(int j=i+1;j<=49;j++)
      {
         for(int k=j+1;k<=49;k++)
      {
         for(int l=k+1;k<=49;k++)
      {
         for(int m=l+1;m<=49;m++)
      {
         for(int n=m+1;n<=49;n++)
         {
              System.out.println(i+" "+j+" "+" "+k+" "+l+" "+m+" "+n );//得到全部的
         }
      }  }  }  }}
    }
    }
      

  4.   

    其实用String和数组没什么本质区别...
    要想不重复就需要比较,要比较你就需要记录.
    与其这样不如扔到容器中,shuffle()一下,然后顺序输出30个就行了.