黑马程序员技术交流社区

标题: 算法题 [打印本页]

作者: 半世心修    时间: 2015-5-30 10:08
标题: 算法题
题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  
  1. public class lianxi11 {
  2. public static void main(String[] args) {
  3.      int count = 0;
  4.      for(int x=1; x<5; x++) {
  5.       for(int y=1; y<5; y++) {
  6.        for(int z=1; z<5; z++) {
  7.         if(x != y && y != z && x != z) {
  8.          count ++;
  9.          System.out.println(x*100 + y*10 + z );
  10.         }       }      }     }
  11.      System.out.println("共有" + count + "个三位数");
  12. }}
复制代码

作者: kmlitheima    时间: 2015-5-30 10:39
24,算法貌似不够通用性啊!
作者: 武汉小菜鸟    时间: 2015-6-1 00:05
你还可以优化下你的算法
作者: LoveMyself    时间: 2015-6-1 01:10
看着代码挺少的,难
作者: 谢晓明    时间: 2015-6-1 01:16
一般把代码写在方法里,在主函数中去调用比较好
作者: 海角秋风    时间: 2015-6-1 09:09
学习了,循环 确实挺好用的。
作者: qq479470741    时间: 2015-6-1 09:24
三重循环,挺好的,不过如果把x和y的判断放到最后一个z循环的外面会不会更好一点呢?
比如
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 int count = 0;
  4.                 for (int x = 1; x < 5; x++) {
  5.                         for (int y = 1; y < 5; y++) {
  6.                                 if (x != y) {
  7.                                         for (int z = 1; z < 5; z++) {
  8.                                                 if (y != z && x != z) {
  9.                                                         count++;
  10.                                                         System.out.println(x * 100 + y * 10 + z);
  11.                                                 }
  12.                                         }
  13.                                 }
  14.                         }
  15.                 }
  16.                 System.out.println("共有" + count + "个三位数");
  17.         }
  18. }
复制代码





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