如题:有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:掌握此算法并不难,看清题目要求是在规定数字内选取三位组成无重复的数字,只需要构建一个数组,利用三层循环加判断的方法在不同时间取不同顺序的不同值即可
public class Test {
public static void main(String[] args) {
ArrayList count = new ArrayList();//此数组装结果
ArrayList list = new ArrayList();//此数组装数字
int resault;
list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals(0))//首位不能为0
continue;
for (int j = 0; j < list.size(); j++) {
if(list.get(i) == list.get(j))//不能出现相同数
continue;
for (int j2 = 0; j2 < list.size(); j2++) {
if(list.get(i) == list.get(j) || list.get(i) == list.get(j2) || list.get(j) == list.get(j2))//数字不能重复出现
continue;
resault = (Integer) list.get(i) * 100 + (Integer) list.get(j) * 10 +(Integer) list.get(j2);
count.add(resault);
System.out.println(resault);
}
}
}
System.out.println("总共有"+count.size()+"个");
}
}