黑马程序员技术交流社区

标题: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? [打印本页]

作者: 920792433    时间: 2015-10-9 19:36
标题: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
作者: fmi110    时间: 2015-10-9 21:57
本帖最后由 fmi110 于 2015-10-9 21:58 编辑

  1. public class T30 {
  2.         //有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  3.         //分析:穷取法
  4.         public static void main(String[] args) {
  5.                 int count = 0;
  6.                 for (int i = 1; i < 5; i++) {
  7.                         for (int j = 1; j < 5; j++) {
  8.                                 for (int k = 1; k < 5; k++) {
  9.                                         if(i!=j && j!=k && k!=i){//三位数都不相同
  10.                                                 count++;
  11.                                                 System.out.print(""+i+j+k+"  ");//输出每位数
  12.                                                 if(count%4==0)//输出四个数后换行
  13.                                                         System.out.println();
  14.                                         }
  15.                                 }
  16.                         }
  17.                 }
  18.                 System.out.println("总个数是:"+count);
  19.         }

  20. }
复制代码
  1. 123  124  132  134  
  2. 142  143  213  214  
  3. 231  234  241  243  
  4. 312  314  321  324  
  5. 341  342  412  413  
  6. 421  423  431  432  
  7. 总个数是:24
复制代码



作者: 迷茫不堪的年纪    时间: 2015-10-9 23:19
直接用  if(count%4==0)   吧表现格式也表现出来了。蛮好哈。{:2_31:}
作者: 徐慧shanghai    时间: 2015-10-10 16:22
写个循环就好了
for(i=1;i<5;i++)
for(j=2;j<5;j++)
for(k=3;k<5;k++){
如果有数字相等,就continue
没有数字相等就输出 i*100+j*10+k
}
就好了阿
作者: zrc203    时间: 2015-10-10 19:29
  1. import java.util.*;

  2. public class HashMapTest{
  3.         public static void main(String[] args){
  4.                 Random r = new Random();
  5.                 Set<Integer> set = new TreeSet<Integer>();
  6.                 int d=0;
  7.                 int n = 1;
  8.                 while(n<500){
  9.                         int a = r.nextInt(4)+1;
  10.                         int b = r.nextInt(4)+1;
  11.                         int c = r.nextInt(4)+1;
  12.                         if(a==b||a==c||b==c)
  13.                                 continue;
  14.                         d=a*100+b*10+c;
  15.                         set.add(d);
  16.                         n++;
  17.                 }
  18.                 Iterator<Integer> iter = set.iterator();
  19.                 int n1 = 1;
  20.                 while(iter.hasNext()){
  21.                        
  22.                         System.out.print((int)iter.next()+",");
  23.                         if(n1%5==0)
  24.                                 System.out.println();
  25.                         n1++;
  26.                 }
  27.                 System.out.println();
  28.                 System.out.println("总数:"+set.size());
  29.         }
  30. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2