一道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个就行了.