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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 半世心修 中级黑马   /  2015-5-30 10:08  /  584 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:有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. }}
复制代码

6 个回复

正序浏览
三重循环,挺好的,不过如果把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. }
复制代码
回复 使用道具 举报
学习了,循环 确实挺好用的。
回复 使用道具 举报
一般把代码写在方法里,在主函数中去调用比较好
回复 使用道具 举报
看着代码挺少的,难
回复 使用道具 举报
你还可以优化下你的算法
回复 使用道具 举报
24,算法貌似不够通用性啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马