日期:2014-05-20  浏览次数:20765 次

难题,高手来!
一道Java题目:一项抽奖活动要求你从整数1-49之间选择6个不同的数字,编写一个程序来完成这项工作,并生成5组

只局限用FOR,不许使用数组,越简单越好!

------解决方案--------------------
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());
  }
}
------解决方案--------------------
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 );//得到全部的
}
}

}

}

}

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