public class yu{
public static void main(String[]args){
int count=0;
for(int i=1;i<5;i++){
for(int j=1;j<5;j++){
for(int k=1;k<5;k++){
if((i!=j)&&(j!=k)&&(k!=i))
count++;
System.out.print(i*100+j*10+k+" ");
}
}
}
System.out.println("共有三位数:"+count+"个");
}
}
采用三级嵌套循环,当有重复数字时,采用continue跳出单次循环,这样获得的就不会有重复出现,同时用count进行了计数,并记录了程序的运行时间,有兴趣的可以测试一下另一种直接用if(i!=j&& i!=k && j!=k)的运行时间。比较一下效率
public static void main(String[] args) {
int count=0;
long time1=System.currentTimeMillis();
for (int i = 1; i <=4; i++) {
for (int j = 1; j <=4; j++) {
if (i==j) {
continue;
}
for (int k = 1; k <=4; k++) {
if (i==k ||j==k) {
continue;
}
count++;
System.out.println("组成的三位数有:"+(i*100+j*10+k));
}
}
}
long time2=System.currentTimeMillis();
System.out.println("一共可以组成:"+count+"个三位数");
System.out.println("执行时间"+(time2-time1));
}
}