本帖最后由 韩伟 于 2012-7-23 17:29 编辑
/**
* 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
*/
import java.util.*;
class ThreeUnitNum
{
static ArrayList al = new ArrayList();
public static void main(String []args)
{
int [] arr = {1,2,3,4};
createNum(arr);
judgeNum();
for(int i=0;i<al.size();i++)
System.out.print(al.get(i)+" ");
}
public static void createNum(int []arr)
{
for(int i=0;i<arr.length;i++)
for(int j=0;j<arr.length;j++)
for(int k=0;k<arr.length;k++)
al.add(arr*100+arr[j]*10+arr[k]);
}
public static void judgeNum() //这个函数有问题,请问这里改怎么做,如果要用迭代器又该怎么做
{
for(int i=0;i<al.size();i++)
{
int temp = Integer.parseInt(al.get(i).toString());
if((temp%10==temp/100)||(temp%10==temp/10%10)||(temp/100==temp/10%10))
al.remove(temp);
}
}
}
如果我再声明一个ArrayList的话可以解决这个问题,但是我感觉那不优化。还有一点儿就是,集合声明的是静态的,这样会不会不好,如何能优化一下。
求高手指点!
|