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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李征 中级黑马   /  2013-5-16 23:25  /  950 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李征 于 2013-5-17 18:06 编辑

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?分别打印出来,貌似要用到循环,但是没有思路,求大神给个思路,然后再写个大概的代码,十分感谢

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

4 个回复

倒序浏览
  1. public class Print{
  2. public static void main(String[] args) {
  3. for(int i = 123; i <= 432; i++){
  4. //i中的数字必须为1至4,否则排除i
  5. if(((i/100) > 4) || ((i/10%10) > 4) || (i%10 > 4) || (i%10 == 0) || (i/10%10 == 0))
  6. continue;
  7. //i的百位、十位、各位互不相同
  8. else if((i/100) != (i/10%10) && (i/100) != (i%10) && (i/10%10) != (i%10))
  9. System.out.println(i);
  10. }
  11. }
  12. }
复制代码
回复 使用道具 举报
  1. public static void main(String[] args)
  2.         {
  3.                 int i,j,k;
  4.                 System.out.printf("\n");
  5.                 for(i=1;i<5;i++)
  6.                 {
  7.                         for(j=1;j<5;j++)
  8.                         {
  9.                                 for (k=1;k<5;k++)
  10.                                 {
  11.                                         if (i!=k&&i!=j&&j!=k)
  12.                                         System.out.println(""+i+j+k);
  13.                                 }
  14.                         }
  15.                 }


  16.         }
复制代码
回复 使用道具 举报
/*
给定四个数 1 2 3 4 。排列组合成三位数。不重复

思路:1。 选出一个数放在百位上
      
          2.  选出一个数和百位上的数字不同,放在十位上
      
          3.  选出一个数和百位上的数和十位上的数都不同,放在个位上

          4.  打印这个数。
*/
class ShuLie1234
{
        public static void main(String[] args)
        {
                int[] arr = {1,2,3,4};   //定义一个数组 把这四个数存进去。
                int a,b,c;                               
                int num=0;              //用于存储这样的数的个数

                for(int i=0;i<4;i++)
                {
                        a = arr[i];         // 确定百位上的数。
                        for(int j=0;j<4;j++)
                        {
                                if(j!=i)
                                {
                                        b = arr[j];      //确定十位上的数。
                                        for(int k=0;k<4;k++)
                                        {
                                                if(k!=j&&k!=i)
                                                {
                                                        c = arr[k];   // 确定 个位上的数
                                                        num++;
                                                        System.out.println(a*100+b*10+c);   // 打印这个数
                                                }
                                        }
                                }
                        }
                }
                System.out.println("这样的数的个数为:"+num);  //打印个数。
        }
}
回复 使用道具 举报
谢谢楼上3位,我看懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马