黑马程序员技术交流社区

标题: 用JAVA解决一个小问题,求解 [打印本页]

作者: 李征    时间: 2013-5-16 23:25
标题: 用JAVA解决一个小问题,求解
本帖最后由 李征 于 2013-5-17 18:06 编辑

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?分别打印出来,貌似要用到循环,但是没有思路,求大神给个思路,然后再写个大概的代码,十分感谢
作者: long    时间: 2013-5-17 00:02
  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. }
复制代码

作者: 逸盏清茶    时间: 2013-5-17 00:25
  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.         }
复制代码

作者: 尖卡斌引    时间: 2013-5-17 00:51
/*
给定四个数 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);  //打印个数。
        }
}
作者: 李征    时间: 2013-5-17 18:07
谢谢楼上3位,我看懂了




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