A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

4 个回复

正序浏览
  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. }
复制代码

评分

参与人数 1黑马币 +2 收起 理由
920792433 + 2 很给力!

查看全部评分

回复 使用道具 举报
写个循环就好了
for(i=1;i<5;i++)
for(j=2;j<5;j++)
for(k=3;k<5;k++){
如果有数字相等,就continue
没有数字相等就输出 i*100+j*10+k
}
就好了阿
回复 使用道具 举报
直接用  if(count%4==0)   吧表现格式也表现出来了。蛮好哈。{:2_31:}
回复 使用道具 举报
本帖最后由 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
复制代码


评分

参与人数 1黑马币 +2 收起 理由
920792433 + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马