输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻

解决方案 »

  1.   


    import java.util.HashSet;
    import java.util.Set;public class TTTT {
    public static void main(String[]args)
    {
    int ii[]=new int[]{1,2,2,3,4,5};
    Set ss= new HashSet();
    for(int i=0;i<ii.length;i++)
    {
    for(int j=0;j<ii.length;j++)
    {

    for(int k=0;k<ii.length;k++)
    {
    for(int l=0;l<ii.length;l++)
    {
    for(int m=0;m<ii.length;m++)
    {
    for(int n=0;n<ii.length;n++)
    {
    //System.out.println(ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n]);
    if(   i!=j&&i!=k&&i!=l&&i!=m&&i!=n
       && j!=k&&j!=l&&j!=m&&j!=n
       && k!=l&&k!=m&&k!=n
       && l!=m&&l!=n 
       && m!=n)
    {
    String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
    System.out.println(str);
    if(!str.matches("\\d\\d4\\d\\d\\d"))
    {
    if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
    {
    System.out.println(str);
    ss.add(str);
    }
    }
    }
    }
    }
    }

    }

    }
    }
    for (Object tt : ss) {
    System.out.println(tt);
    }
    }
    }
      

  2.   

       还在防地震时期,还没有睡啊。
    没事做又看了下贴子。 开先我用数学方法来解,越想越麻烦,就因为有两个2。
    再仔细看看11楼(原来是AWUSSOFT)的,发现他只是把这六个数字
    显示出来,看来是忘记LZ的条件了。于是,我就在他上来改了下:
    package demo;
    public class TTTT {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};   
            int sum=0;//一共有多少种排列
            String strResult="";//作用见下面
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    if(   i!=j && i!=k && i!=l && i!=m && i!=n
                                       && j!=k &&j !=l && j!=m && j!=n
                                       && k!=l && k!=m && k!=n
                                       && l!=m && l!=n 
                                       && m!=n
                                      ){//显示1、2、2、3、4、5的所以排列
                                    
                                        if(k!=4)//去掉第三位是4排列
                                     {
                                        
                                        if((i==3 && j==4) || (i==4 && j==3)|| 
                                      (j==3 && k==4) || (j==4 && k==3) ||
                                      (k==3 && l==4) || (k==4 && l==3) ||
                                      (l==3 && m==4) || (l==4 && m==3) ||
                                      (m==3 && n==4) || (m==4 && n==3) 
                                        ){//去掉3、5相邻的排列
                                        //不做什么   
                                        }else{   
                                        String str1=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                     if(sum>0){
                                     if(!strResult.contains(str1)){//去掉重复的(因为有两个2)
                                     if(sum%14==0){
                                     System.out.println(str1+"\t");
                                sum++;
                                     }else{
                                     System.out.print(str1+"\t");
                                sum++;
                                     }
                                     }
                                    
                                     }else{
                                     strResult=strResult+":"+str1;
                                     System.out.println(str1+"\t");
                                sum++;
                                
                                     } 
                                       
                                        
                                        }
                                        
                                    
                                    }
                                    
                                       }
              
                                }
                            }
                        }
                    }
                }
                          
            }
            System.out.println("\nsum is:"+sum);
        }
    }---------------------运行结果----------------------
    122354
    122453 123245 123254 123524 123542 125324 125423 122453 123245 123254 123524 123542 125324 125423
    132245 132254 132425 132452 132524 132542 132245 132254 132425 132452 132524 132542 135224 135242
    135224 135242 135422 135422 142235 142253 142325 142352 142523 142532 142235 142253 142325 142352
    142523 142532 145223 145232 145223 145232 145322 145322 152324 152423 152324 152423 153224 153242
    153224 153242 212354 212453 213245 213254 213524 213542 215324 215423 221354 221453 223145 223154
    223514 223541 225314 225413 231245 231254 231425 231452 231524 231542 232145 232154 232415 232451
    232514 232541 235124 235142 235214 235241 235412 235421 241235 241253 241325 241352 241523 241532
    242135 242153 242315 242351 242513 242531 245123 245132 245213 245231 245312 245321 251324 251423
    252314 252413 253124 253142 253214 253241 212354 212453 213245 213254 213524 213542 215324 215423
    221354 221453 223145 223154 223514 223541 225314 225413 231245 231254 231425 231452 231524 231542
    232145 232154 232415 232451 232514 232541 235124 235142 235214 235241 235412 235421 241235 241253
    241325 241352 241523 241532 242135 242153 242315 242351 242513 242531 245123 245132 245213 245231
    245312 245321 251324 251423 252314 252413 253124 253142 253214 253241 312245 312254 312425 312452
    312524 312542 312245 312254 312425 312452 312524 312542 315224 315242 315224 315242 315422 315422
    321245 321254 321425 321452 321524 321542 322145 322154 322415 322451 322514 322541 325124 325142
    325214 325241 325412 325421 321245 321254 321425 321452 321524 321542 322145 322154 322415 322451
    322514 322541 325124 325142 325214 325241 325412 325421 351224 351242 351224 351242 351422 351422
    352124 352142 352214 352241 352412 352421 352124 352142 352214 352241 352412 352421 412235 412253
    412325 412352 412523 412532 412235 412253 412325 412352 412523 412532 413225 413252 413225 413252
    413522 413522 415223 415232 415223 415232 415322 415322 421235 421253 421325 421352 421523 421532
    422135 422153 422315 422351 422513 422531 423125 423152 423215 423251 423512 423521 425123 425132
    425213 425231 425312 425321 421235 421253 421325 421352 421523 421532 422135 422153 422315 422351
    422513 422531 423125 423152 423215 423251 423512 423521 425123 425132 425213 425231 425312 425321
    451223 451232 451223 451232 451322 451322 452123 452132 452213 452231 452312 452321 452123 452132
    452213 452231 452312 452321 453122 453122 453212 453221 453212 453221 512324 512423 512324 512423
    513224 513242 513224 513242 521324 521423 522314 522413 523124 523142 523214 523241 521324 521423
    522314 522413 523124 523142 523214 523241 531224 531242 531224 531242 531422 531422 532124 532142
    532214 532241 532412 532421 532124 532142 532214 532241 532412 532421 541223 541232 541223 541232
    541322 541322 542123 542132 542213 542231 542312 542321 542123 542132 542213 542231 542312 542321 sum is:407
      

  3.   

    public class wlj {
        public static void main(String []args)
        {
         int a=0;
         int c=2;
        
         String q[]=new String[720];
         int w=0;
        
         boolean b1=true;
         String str="";
         int []b=new int[6];
         for(int n2=0;n2<720;++n2)
         {
         for(int j=0;j<6;++j)
         {
                int t=(int)(Math.random()*5+1);
                b[j]=t;
                if(j>0)
                {
                    for(int i=0;i<j;i++)
                    {
                     if(b[j]==2)
                     {
                     c--;
                     }
                    
                       if(b[j]==b[i])
                       {
                          if(b1)
                          {
                           if(b[j]==2)
                            {
                             b1=false;
                            }
                            else
                            {
                               --j;
                              break;
                            }
                          }
                          else
                          {
                                 --j;
                              break;
                          }
                            
                          
                       
                       }
                       if(i==j-1)
                       {
                        str+=b[j];
                       }
                    }
                }
                else
                {
                   str+=b[j];
                   
                }
              
         } 
         if(Integer.parseInt(str.substring(2,3))!=4)
         for(int i=0;i<5;i++)
         {
         if((Integer.parseInt(str.substring(i,i+1))+Integer.parseInt(str.substring(i+1,i+2)))!=8)
         {
         if(i==4)
         {
          // System.out.print((Integer.parseInt(str.substring(i,i+1))+Integer.parseInt(str.substring(i+1,i+2)))+" ");
           a++;
           q[w]=str;
          
           if(w>0)
           {
            for(int r=0;r<w;r++)
            {
            if(q[w]==q[r])
            {
            --n2;w--;
            break;
            }
            else
            {
           
            }
           
            }w++; System.out.print(str+" ");
           }
           else
           {
            w++; System.out.print(str+" ");
           }
           
                 break;
         }
        
         }
             else
             { --n2;
              break;
             }
         }
         else
         {
         --n2;
         }
        
                          for(int i=0;i<b.length;i++)
         {
         b[i]=0;
         c=2;
         b1=true;
         str="";
         }
         }
         System.out.println("");
         System.out.print(a);
        }
        
    }
    不知道有多少个,郁闷怎么这么难啊
      

  4.   

    public class Sort {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};   
            int sum=0;//成功排列的总数。
            for(int i1=0;i1<ii.length;i1++)
            {
                for(int i2=0;i2<ii.length;i2++)
                {
                    for(int i3=0;i3<ii.length;i3++)
                    {
                        for(int i4=0;i4<ii.length;i4++)
                        {
                            for(int i5=0;i5<ii.length;i5++)
                            {
                                for(int i6=0;i6<ii.length;i6++)
                                {
                                    if(check(i1,i2,i3,i4,i5,i6))//检查是否符合要求。
                                       {
                                       System.out.print(""+ii[i1]+ii[i2]+ii[i3]+ii[i4]+ii[i5]+ii[i6]+"    ");
                                       sum++;
                                       }
                                }
                            }
                        }
                    }
                }
                          
            }
            System.out.println("\nsum is:"+sum);
        }
        private static boolean check(int i1,int i2,int i3,int i4,int i5,int i6) 
       {
           if(i3==4)//排除第3位为4的情况。i3为第三位;ii[4]=4,所以此处可用i3==4来判定。
           return false;
           int jj[]=new int[]{i1,i2,i3,i4,i5,i6}; 
           int m,n;
           for(m=0;m<jj.length-1;m++)//排除数字重复出现的情况。
           {
            if((jj[m]==3&&jj[m+1]==5)||(jj[m]==5&&jj[m+1]==3))
             return false;
           }
           for(m=0;m<jj.length;m++)//排除3和5相邻的情况。
             {
             n=m+1;
             for(;n<jj.length;n++)
                {
                if(jj[m]==jj[n])
                   return false;
                }
             }
           return true;
       }
    }抱歉,装ECLIPSE的机器坏了,只能用记事本打..
    已经在JDK6环境下的编译及运行,均未发现问题..
    还请哪位装有ECLIPSE的朋友帮运行一下,顺带把结果贴上来..
    自己检查了一下,应该是不会有错了,就这么3个判断而已...
      

  5.   

    if(!str.matches("\\d\\d4\\d\\d\\d"))
                                        {
                                            if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
                                            {
                                                System.out.println(str);
                                                ss.add(str);
                                            }
                                        }
    晕了正则表达式不起作用,谁帮我改改看.
      

  6.   

    再重新看了一下,其实我的是对的,只是我多打印了一次了,所以前面的结果看起来不对
    String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                        System.out.println(str);//这里多了一行,如果把这一行去了就正确了.
                                        if(!str.matches("\\d\\d4\\d\\d\\d"))
                                        {
      

  7.   


    import java.util.HashSet;
    import java.util.Set;public class TTTT {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};
            Set ss= new HashSet();
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    //System.out.println(ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n]);
                                    if(   i!=j&&i!=k&&i!=l&&i!=m&&i!=n
                                       && j!=k&&j!=l&&j!=m&&j!=n
                                       && k!=l&&k!=m&&k!=n
                                       && l!=m&&l!=n 
                                       && m!=n)
                                    {
                                        String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                      //  System.out.println(str);
                                        if(!str.matches("\\d\\d4\\d\\d\\d"))
                                        {
                                            if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
                                            {
                                               // System.out.println(str);
                                                ss.add(str);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        
                    }
                    
                }
            }
            System.out.println("总数为:"+ss.size());
            int i=1;
            for (Object tt : ss) {
             if(i++%11==0)
             {
             System.out.println();
             }
             System.out.print(tt+"\t");
            }
        }
    }总数为:198
    341225 541322 223145 542321 152342 522134 432521 513224 523124 322514
    523241 232154 225134 342251 431225 315242 513242 513422 252413 522413 231542
    321542 132245 122543 522431 412325 132452 213452 132425 231524 542123 242513
    452321 423251 125423 312524 322541 145223 152432 312254 523412 132524 225431
    321524 432125 322415 523214 325412 321254 512342 212543 421523 312452 322451
    412523 251342 252134 143225 312245 521243 325124 215243 315422 231254 245132
    252341 321245 125234 541232 512234 252143 345212 342215 452123 345221 431252
    425132 521423 423215 213425 143252 123254 215432 321452 225143 452312 451322
    522143 342125 451232 251234 241523 543212 243251 432251 213245 322145 523142
    542312 245231 425213 232415 512432 342521 123245 423125 251432 152234 413252
    415223 225413 232514 232451 223154 252431 543221 452213 312542 452132 322154
    215423 542213 221543 223451 543122 231245 132254 522341 425123 251243 125243
    123425 431522 542132 521324 231452 345122 521342 425231 325214 523421 512423
    232145 341522 251324 221345 243125 232541 325421 432215 223415 413225 245123
    215234 242315 241325 122345 243152 132542 315224 325142 245213 321425 252314
    415232 123452 541223 152243 142523 342152 512243 432512 421325 422513 213254
    521234 341252 452231 145232 422315 125432 512324 312425 325241 152423 142325
    243215 231425 152324 451223 522314 521432 342512 423152 212345 542231 432152
    251423
      

  8.   

    import java.util.Vector;public class TTTT {
        public static void main(String[]args)
        {   boolean b1=true;
         Vector v=new Vector();
            int ii[]=new int[]{1,2,2,3,4,5};
            //Set ss= new HashSet();
            int a=0;
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    if(   i!=j&&i!=k&&i!=l&&i!=m&&i!=n
                                       && j!=k&&j!=l&&j!=m&&j!=n
                                       && k!=l&&k!=m&&k!=n
                                       && l!=m&&l!=n 
                                       && m!=n)
                                    {
                                        String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                        if(!str.matches("\\d\\d4\\d\\d\\d"))
                                        {
                                            if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
                                            {
                                                if(a>0)
                                                {
                                                 for(int b=0;b<v.size();b++)
                                                 {
                                                 if(v.elementAt(b).equals(str))
                                                 {   b1=false;
                                                 break;
                                                 }
                                                
                                                 }   if(b1)
                                                 {
                                                   v.addElement(str);
                                                   a++;
                                                      System.out.print(str+" ");
                                                 }   
                                                 else
                                                 {
                                                 b1=true;
                                                 }
                                                
                                                   
                                                
                                                }
                                                else
                                                {
                                                 a++;
                                                 System.out.print(str+" ");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        
                    }
                    
                }
            }System.out.println("");
            System.out.print(a);
    //         for(int b=1;b<v.size();b++)
    //            {
    //            for(int i=0;i<b;i++)
    //            {
    //            if(v.elementAt(b).equals(v.elementAt(i)))
    //                    {
    //                      System.out.println("有重复"+v.elementAt(b));
    //                    }
    //            }
    //                 
    //                                            
    //           } 
        }
    }
    我把上面的代码改了一下怎么是199个啊
    122345 122543 123245 123254 123425 123452 125234 125243 125423
    125432 122345 132245 132254 132425 132452 132524 132542 142325 
    142523 143225 143252 145223 145232 152234 152243 152324 152342 
    152423 152432 212345 212543 213245 213254 213425 213452 215234 
    215243 215423 215432 221345 221543 223145 223154 223415 223451 
    225134 225143 225413 225431 231245 231254 231425 231452 231524 
    231542 232145 232154 232415 232451 232514 232541 241325 241523 
    242315 242513 243125 243152 243215 243251 245123 245132 245213 
    245231 251234 251243 251324 251342 251423 251432 252134 252143 
    252314 252341 252413 252431 312245 312254 312425 312452 312524 
    312542 315224 315242 315422 321245 321254 321425 321452 321524 
    321542 322145 322154 322415 322451 322514 322541 325124 325142 
    325214 325241 325412 325421 341225 341252 341522 342125 342152 
    342215 342251 342512 342521 345122 345212 345221 412325 412523 
    413225 413252 415223 415232 421325 421523 422315 422513 423125 
    423152 423215 423251 425123 425132 425213 425231 431225 431252 
    431522 432125 432152 432215 432251 432512 432521 451223 451232 
    451322 452123 452132 452213 452231 452312 452321 512234 512243 
    512324 512342 512423 512432 513224 513242 513422 521234 521243 
    521324 521342 521423 521432 522134 522143 522314 522341 522413 
    522431 523124 523142 523214 523241 523412 523421 541223 541232 
    541322 542123 542132 542213 542231 542312 542321 543122 543212 543221 
      

  9.   

      我真是笨蛋一个:看:
    if((i==3 && j==4) || (i==4 && j==3)|| 
    (j==3 && k==4) || (j==4 && k==3) ||
    (k==3 && l==4) || (k==4 && l==3) ||
    (l==3 && m==4) || (l==4 && m==3) ||
    (m==3 && n==4) || (m==4 && n==3)   是3 和5不相邻,我弄的是什么?
      还有"strResult=strResult+":"+str1;"  怎么就那里写一条? 另外两个就不写了?
      思考一点都不严密?  还以为自己想的很好,都不仔细看下结果。
    哎, 为什么总是那么粗心!!!  看改过的结果:
    package demo;
    public class TTTT {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};   
            int sum=0;//一共有多少种排列
            String strResult="";//作用见下面
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    if(   i!=j && i!=k && i!=l && i!=m && i!=n
                                       && j!=k &&j !=l && j!=m && j!=n
                                       && k!=l && k!=m && k!=n
                                       && l!=m && l!=n 
                                       && m!=n
                                      ){//显示1、2、2、3、4、5的所以排列
                                    
                                        if(k!=4)//去掉第三位是4排列
                                     {
                                        
                                        if((i==3 && j==5) || (i==5 && j==3)|| 
                                      (j==3 && k==5) || (j==5 && k==3) ||
                                      (k==3 && l==5) || (k==5 && l==3) ||
                                      (l==3 && m==5) || (l==5 && m==3) ||
                                      (m==3 && n==5) || (m==5 && n==3) 
                                        ){//去掉3、5相邻的排列
                                        //不做什么   
                                        }else{   
                                        String str1=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                     if(sum>0){
                                     if(!strResult.contains(str1)){//去掉重复的(因为有两个2)
                                     if(sum%14==0){
                                     strResult=strResult+":"+str1;
                                     System.out.println(str1+"\t");
                                sum++;
                                     }else{
                                     strResult=strResult+":"+str1;
                                     System.out.print(str1+"\t");
                                sum++;
                                     }
                                     }
                                    
                                     }else{
                                     strResult=strResult+":"+str1;
                                     System.out.println(str1+"\t");
                                sum++;
                                
                                     } 
                                       
                                        
                                        }
                                        
                                    
                                    }
                                    
                                       }
              
                                }
                            }
                        }
                    }
                }
                          
            }
            System.out.println("\nsum is:"+sum);
        }
    }
    -----------------------------------结果------------------------------
    122345
    122543 123245 123254 123425 123452 125234 125243 125423 125432 132245 132254 132425 132452 132524
    132542 142325 142523 143225 143252 145223 145232 152234 152243 152324 152342 152423 152432 212345
    212543 213245 213254 213425 213452 215234 215243 215423 215432 221345 221543 223145 223154 223415
    223451 225134 225143 225413 225431 231245 231254 231425 231452 231524 231542 232145 232154 232415
    232451 232514 232541 241325 241523 242315 242513 243125 243152 243215 243251 245123 245132 245213
    245231 251234 251243 251324 251342 251423 251432 252134 252143 252314 252341 252413 252431 312245
    312254 312425 312452 312524 312542 315224 315242 315422 321245 321254 321425 321452 321524 321542
    322145 322154 322415 322451 322514 322541 325124 325142 325214 325241 325412 325421 341225 341252
    341522 342125 342152 342215 342251 342512 342521 345122 345212 345221 412325 412523 413225 413252
    415223 415232 421325 421523 422315 422513 423125 423152 423215 423251 425123 425132 425213 425231
    431225 431252 431522 432125 432152 432215 432251 432512 432521 451223 451232 451322 452123 452132
    452213 452231 452312 452321 512234 512243 512324 512342 512423 512432 513224 513242 513422 521234
    521243 521324 521342 521423 521432 522134 522143 522314 522341 522413 522431 523124 523142 523214
    523241 523412 523421 541223 541232 541322 542123 542132 542213 542231 542312 542321 543122 543212
    543221
    sum is:198
      

  10.   

      郁闷 。
    看:
                                               if(k!=4)//去掉第三位是4排列
                                                   {
                                               
                                               if((i==3 && j==4) || (i==4 && j==3)|| 
                                                 (j==3 && k==4) || (j==4 && k==3) ||
                                                 (k==3 && l==4) || (k==4 && l==3) ||
                                                 (l==3 && m==4) || (l==4 && m==3) ||
                                                 (m==3 && n==4) || (m==4 && n==3) 
                                               ){//去掉3、5相邻的排列
                不是写的是3、5 不相邻的嘛,怎么写成3、4不相邻?
      还有:
                                                         if(sum>0){
                                                        if(!strResult.contains(str1)){//去掉重复的(因为有两个2)
                                                            if(sum%14==0){
                                                                System.out.println(str1+"\t");
                                                                sum++;
                                                            }else{
                                                                System.out.print(str1+"\t");
                                                                sum++;
                                                            }
                                                        }
                                                        
                                                    }else{
                                                        strResult=strResult+":"+str1;
                                                        System.out.println(str1+"\t");
                                                        sum++;
                                                            
                                                    } 
                        strResult=strResult+":"+str1;      就只那里写一条,还有两个地方就不用加上了?
     不知道自己思考什么总是不严密,光犯这些低级错误。本以为自己考虑的很好,不用去想肯定是这样,连结果都没有仔细看一看!
                粗心大意是自己的致命点!
    再看下修改后的结果:package demo;
    public class TTTT {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};   
            int sum=0;//一共有多少种排列
            String strResult="";//作用见下面
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    if(   i!=j && i!=k && i!=l && i!=m && i!=n
                                       && j!=k &&j !=l && j!=m && j!=n
                                       && k!=l && k!=m && k!=n
                                       && l!=m && l!=n 
                                       && m!=n
                                      ){//显示1、2、2、3、4、5的所以排列
                                    
                                        if(k!=4)//去掉第三位是4排列
                                     {
                                        
                                        if((i==3 && j==5) || (i==5 && j==3)|| 
                                      (j==3 && k==5) || (j==5 && k==3) ||
                                      (k==3 && l==5) || (k==5 && l==3) ||
                                      (l==3 && m==5) || (l==5 && m==3) ||
                                      (m==3 && n==5) || (m==5 && n==3) 
                                        ){//去掉3、5相邻的排列
                                        //不做什么   
                                        }else{   
                                        String str1=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                     if(sum>0){
                                     if(!strResult.contains(str1)){//去掉重复的(因为有两个2)
                                     if(sum%14==0){
                                     strResult=strResult+":"+str1;
                                     System.out.println(str1+"\t");
                                sum++;
                                     }else{
                                     strResult=strResult+":"+str1;
                                     System.out.print(str1+"\t");
                                sum++;
                                     }
                                     }
                                    
                                     }else{
                                     strResult=strResult+":"+str1;
                                     System.out.println(str1+"\t");
                                sum++;
                                
                                     } 
                                       
                                        
                                        }
                                        
                                    
                                    }
                                    
                                       }
              
                                }
                            }
                        }
                    }
                }
                          
            }
            System.out.println("\nsum is:"+sum);
        }
    }
    -----------------------结果-----------------------------------
    122345
    122543 123245 123254 123425 123452 125234 125243 125423 125432 132245 132254 132425 132452 132524
    132542 142325 142523 143225 143252 145223 145232 152234 152243 152324 152342 152423 152432 212345
    212543 213245 213254 213425 213452 215234 215243 215423 215432 221345 221543 223145 223154 223415
    223451 225134 225143 225413 225431 231245 231254 231425 231452 231524 231542 232145 232154 232415
    232451 232514 232541 241325 241523 242315 242513 243125 243152 243215 243251 245123 245132 245213
    245231 251234 251243 251324 251342 251423 251432 252134 252143 252314 252341 252413 252431 312245
    312254 312425 312452 312524 312542 315224 315242 315422 321245 321254 321425 321452 321524 321542
    322145 322154 322415 322451 322514 322541 325124 325142 325214 325241 325412 325421 341225 341252
    341522 342125 342152 342215 342251 342512 342521 345122 345212 345221 412325 412523 413225 413252
    415223 415232 421325 421523 422315 422513 423125 423152 423215 423251 425123 425132 425213 425231
    431225 431252 431522 432125 432152 432215 432251 432512 432521 451223 451232 451322 452123 452132
    452213 452231 452312 452321 512234 512243 512324 512342 512423 512432 513224 513242 513422 521234
    521243 521324 521342 521423 521432 522134 522143 522314 522341 522413 522431 523124 523142 523214
    523241 523412 523421 541223 541232 541322 542123 542132 542213 542231 542312 542321 543122 543212
    543221
    sum is:198
      

  11.   

    上午做得过于草率,导致忽略了2个2重复的现象,睡一觉起来以后改正如下:
    public class Sort { 
        public static void main(String[]args) 
        { 
            int ii[]=new int[]{1,3,4,5};    
            int sum=0;//成功排列的总数。 
            for(int i1=0;i1 <ii.length;i1++) 
            { 
                for(int i2=0;i2 <ii.length;i2++) 
                { 
                    for(int i3=0;i3 <ii.length;i3++) 
                    { 
                        for(int i4=0;i4 <ii.length;i4++) 
                        { 
                         if(check(i1,i2,i3,i4))//排除此4个数字有重复出现的结果。
                         {
                            //在以上结果中插入2个2,保证不重复。并将结果保存到b[]中。
                            int m,n;
                            for(m=0;m<5;m++)
                             { 
                             for(n=m+1;n<6;n++)
                              {
                                  int a[]=new int[]{ii[i1],ii[i2],ii[i3],ii[i4]};
                                  int b[]=new int[6];
                                  for(int i=0,j=0;i<6;i++)
                                  {
                                  if(i==m||i==n)
                                    b[i]=2;
                                  else
                                   {
                                   b[i]=a[j];
                                   j++;
                                   }
                                  }
                                if(check(b[0],b[1],b[2],b[3],b[4],b[5]))//排除不符合要求的值。
                                   {
                                   System.out.print(""+b[0]+b[1]+b[2]+b[3]+b[4]+b[5]+"    ");
                                   sum++;
                                   }
                              }
                             }  
                           } 
                        } 
                    } 
                } 
                           
            } 
            System.out.println("\nsum is:"+sum); 
        } 
        private static boolean check(int i1,int i2,int i3,int i4)  
       {
           int jj[]=new int[]{i1,i2,i3,i4};  
           int m,n;   
           for(m=0;m <jj.length;m++)//排除数字重复出现的情况。 
             {          
             for(n=m+1;n<jj.length;n++) 
                { 
                if(jj[m]==jj[n]) 
                   return false; 
                } 
             }   
           return true;
       }
        private static boolean check(int i1,int i2,int i3,int i4,int i5,int i6)  
       { 
           if(i3==4)//排除第3位为4的情况。
           return false; 
           int jj[]=new int[]{i1,i2,i3,i4,i5,i6};  
           int m,n; 
           for(m=0;m <jj.length-1;m++)//排除3和5相邻的情况。 
           { 
            if((jj[m]==3&&jj[m+1]==5)||(jj[m]==5&&jj[m+1]==3)) 
             return false; 
           } 
           return true; 
       } 
      

  12.   

    在24楼的基础上稍加改动
    import java.util.Vector;
    import java.util.Set;public class Student {
        public static void main(String[]args)
        {
            int ii[]=new int[]{1,2,2,3,4,5};
            Vector ss= new Vector();
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    //System.out.println(ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n]);
                                    if(   i!=j&&i!=k&&i!=l&&i!=m&&i!=n
                                       && j>k&&j!=l&&j!=m&&j!=n       //24楼的第一个条件为j!=k,去除两个2的重复情况
                                       && k!=l&&k!=m&&k!=n&&k!=4      //加了一个可k!=4
                                       && l!=m&&l!=n 
                                       && m!=n)
                                    {
                                        String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                     
                                            if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
                                            {
                                               // System.out.println(str);
                                                ss.add(str);
                                            }
                                    }
                                }
                            }
                        }
                        
                    }
                    
                }
            }
            System.out.println("总数为:"+ss.size());
            int i=1;
            for (Object tt : ss) {
                if(i++%11==0)
                {
                    System.out.println();
                }
                System.out.print(tt+"\t");
            }
        }
    }
    这是结果总数为:222
    122345 122543 132245 132254 132425 132452 132524 132542 132245 132254
    132425 132452 132524 132542 142325 142523 142325 142523 143225 143252 143225
    143252 152234 152243 152324 152342 152423 152432 152234 152243 152324 152342
    152423 152432 221345 221543 231245 231254 231425 231452 231524 231542 232145
    232154 232415 232451 232514 232541 241325 241523 242315 242513 243125 243152
    243215 243251 251234 251243 251324 251342 251423 251432 252134 252143 252314
    252341 252413 252431 221345 221543 231245 231254 231425 231452 231524 231542
    232145 232154 232415 232451 232514 232541 241325 241523 242315 242513 243125
    243152 243215 243251 251234 251243 251324 251342 251423 251432 252134 252143
    252314 252341 252413 252431 321245 321254 321425 321452 321524 321542 321245
    321254 321425 321452 321524 321542 322145 322154 322415 322451 322514 322541
    341225 341252 341225 341252 341522 341522 342125 342152 342215 342251 342512
    342521 342125 342152 342215 342251 342512 342521 421325 421523 421325 421523
    422315 422513 431225 431252 431225 431252 431522 431522 432125 432152 432215
    432251 432512 432521 432125 432152 432215 432251 432512 432521 451223 451232
    451223 451232 451322 451322 452123 452132 452213 452231 452312 452321 452123
    452132 452213 452231 452312 452321 521234 521243 521324 521342 521423 521432
    521234 521243 521324 521342 521423 521432 522134 522143 522314 522341 522413
    522431 541223 541232 541223 541232 541322 541322 542123 542132 542213 542231
    542312 542321 542123 542132 542213 542231 542312 542321 543122 543122 543212
    543221 543212 543221
      

  13.   


    package helloWorld;import java.util.HashSet;
    import java.util.Set;public class GGG { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str=  "122345 122543 123245 123254 123425 123452 125234 125243 125423 "
    +"125432 122345 132245 132254 132425 132452 132524 132542 142325 "
    +"142523 143225 143252 145223 145232 152234 152243 152324 152342 " 
    +"152423 152432 212345 212543 213245 213254 213425 213452 215234 "
    +"215243 215423 215432 221345 221543 223145 223154 223415 223451 "
    +"225134 225143 225413 225431 231245 231254 231425 231452 231524 "
    +"231542 232145 232154 232415 232451 232514 232541 241325 241523 "
    +"242315 242513 243125 243152 243215 243251 245123 245132 245213 "  
    +"245231 251234 251243 251324 251342 251423 251432 252134 252143 "  
    +"252314 252341 252413 252431 312245 312254 312425 312452 312524 "  
    +"312542 315224 315242 315422 321245 321254 321425 321452 321524 "  
    +"321542 322145 322154 322415 322451 322514 322541 325124 325142 "  
    +"325214 325241 325412 325421 341225 341252 341522 342125 342152 "  
    +"342215 342251 342512 342521 345122 345212 345221 412325 412523 "  
    +"413225 413252 415223 415232 421325 421523 422315 422513 423125 "  
    +"423152 423215 423251 425123 425132 425213 425231 431225 431252 "  
    +"431522 432125 432152 432215 432251 432512 432521 451223 451232 "  
    +"451322 452123 452132 452213 452231 452312 452321 512234 512243 "  
    +"512324 512342 512423 512432 513224 513242 513422 521234 521243 "  
    +"521324 521342 521423 521432 522134 522143 522314 522341 522413 "  
    +"522431 523124 523142 523214 523241 523412 523421 541223 541232 "  
    +"541322 542123 542132 542213 542231 542312 542321 543122 543212 543221 ";
    System.out.println(str.split(" ").length);
    Set ss = new HashSet();
    String []aa = str.split(" ");
    for(int i=0;i<aa.length;i++)
    {
    if(ss.contains(aa[i]))
    {
    System.out.println("重复值:"+i+"-------"+aa[i]);
    }
    ss.add(aa[i]);
    }
    System.out.println(ss.size());
    String tt = "122345 122543 132245 132254 132425 132452 132524 132542 132245 132254 "
    +"132425 132452 132524 132542 142325 142523 142325 142523 143225 143252 143225 "
    +"143252 152234 152243 152324 152342 152423 152432 152234 152243 152324 152342 " 
    +"152423 152432 221345 221543 231245 231254 231425 231452 231524 231542 232145 "
    +"232154 232415 232451 232514 232541 241325 241523 242315 242513 243125 243152 " 
    +"243215 243251 251234 251243 251324 251342 251423 251432 252134 252143 252314 " 
    +"252341 252413 252431 221345 221543 231245 231254 231425 231452 231524 231542 " 
    +"232145 232154 232415 232451 232514 232541 241325 241523 242315 242513 243125 " 
    +"243152 243215 243251 251234 251243 251324 251342 251423 251432 252134 252143 " 
    +"252314 252341 252413 252431 321245 321254 321425 321452 321524 321542 321245 " 
    +"321254 321425 321452 321524 321542 322145 322154 322415 322451 322514 322541 " 
    +"341225 341252 341225 341252 341522 341522 342125 342152 342215 342251 342512 " 
    +"342521 342125 342152 342215 342251 342512 342521 421325 421523 421325 421523 " 
    +"422315 422513 431225 431252 431225 431252 431522 431522 432125 432152 432215 " 
    +"432251 432512 432521 432125 432152 432215 432251 432512 432521 451223 451232 " 
    +"451223 451232 451322 451322 452123 452132 452213 452231 452312 452321 452123 " 
    +"452132 452213 452231 452312 452321 521234 521243 521324 521342 521423 521432 " 
    +"521234 521243 521324 521342 521423 521432 522134 522143 522314 522341 522413 " 
    +"522431 541223 541232 541223 541232 541322 541322 542123 542132 542213 542231 " 
    +"542312 542321 542123 542132 542213 542231 542312 542321 543122 543122 543212 " 
    +"543221 543212 543221 ";
    System.out.println(tt.split(" ").length);
    Set s = new HashSet();
    String []a = tt.split(" ");
    for(int i=0;i<a.length;i++)
    {
    if(s.contains(a[i]))
    {
    System.out.println("重复值:"+i+"-------"+a[i]);
    }
    s.add(a[i]);
    }
    System.out.println(s.size());
    }}199
    重复值:10-------122345
    198
    222
    重复值:8-------132245
    重复值:9-------132254
    重复值:10-------132425
    重复值:11-------132452
    重复值:12-------132524
    重复值:13-------132542
    重复值:16-------142325
    重复值:17-------142523
    重复值:20-------143225
    重复值:21-------143252
    重复值:28-------152234
    重复值:29-------152243
    重复值:30-------152324
    重复值:31-------152342
    重复值:32-------152423
    重复值:33-------152432
    重复值:68-------221345
    重复值:69-------221543
    重复值:70-------231245
    重复值:71-------231254
    重复值:72-------231425
    重复值:73-------231452
    重复值:74-------231524
    重复值:75-------231542
    重复值:76-------232145
    重复值:77-------232154
    重复值:78-------232415
    重复值:79-------232451
    重复值:80-------232514
    重复值:81-------232541
    重复值:82-------241325
    重复值:83-------241523
    重复值:84-------242315
    重复值:85-------242513
    重复值:86-------243125
    重复值:87-------243152
    重复值:88-------243215
    重复值:89-------243251
    重复值:90-------251234
    重复值:91-------251243
    重复值:92-------251324
    重复值:93-------251342
    重复值:94-------251423
    重复值:95-------251432
    重复值:96-------252134
    重复值:97-------252143
    重复值:98-------252314
    重复值:99-------252341
    重复值:100-------252413
    重复值:101-------252431
    重复值:108-------321245
    重复值:109-------321254
    重复值:110-------321425
    重复值:111-------321452
    重复值:112-------321524
    重复值:113-------321542
    重复值:122-------341225
    重复值:123-------341252
    重复值:125-------341522
    重复值:132-------342125
    重复值:133-------342152
    重复值:134-------342215
    重复值:135-------342251
    重复值:136-------342512
    重复值:137-------342521
    重复值:140-------421325
    重复值:141-------421523
    重复值:146-------431225
    重复值:147-------431252
    重复值:149-------431522
    重复值:156-------432125
    重复值:157-------432152
    重复值:158-------432215
    重复值:159-------432251
    重复值:160-------432512
    重复值:161-------432521
    重复值:164-------451223
    重复值:165-------451232
    重复值:167-------451322
    重复值:174-------452123
    重复值:175-------452132
    重复值:176-------452213
    重复值:177-------452231
    重复值:178-------452312
    重复值:179-------452321
    重复值:186-------521234
    重复值:187-------521243
    重复值:188-------521324
    重复值:189-------521342
    重复值:190-------521423
    重复值:191-------521432
    重复值:200-------541223
    重复值:201-------541232
    重复值:203-------541322
    重复值:210-------542123
    重复值:211-------542132
    重复值:212-------542213
    重复值:213-------542231
    重复值:214-------542312
    重复值:215-------542321
    重复值:217-------543122
    重复值:220-------543212
    重复值:221-------543221
    119
      

  14.   

    35的第一行就有相同的。我赞同198个
    import java.util.Vector;public class TTTT {
        public static void main(String[]args)
        {   boolean b1=true;
         Vector v=new Vector();
            int ii[]=new int[]{1,2,2,3,4,5};
            //Set ss= new HashSet();
            int a=0;
            for(int i=0;i<ii.length;i++)
            {
                for(int j=0;j<ii.length;j++)
                {
                    
                    for(int k=0;k<ii.length;k++)
                    {
                        for(int l=0;l<ii.length;l++)
                        {
                            for(int m=0;m<ii.length;m++)
                            {
                                for(int n=0;n<ii.length;n++)
                                {
                                    if(   i!=j&&i!=k&&i!=l&&i!=m&&i!=n
                                       && j!=k&&j!=l&&j!=m&&j!=n
                                       && k!=l&&k!=m&&k!=n
                                       && l!=m&&l!=n 
                                       && m!=n)
                                    {
                                        String str=ii[i]+""+ii[j]+""+ii[k]+""+ii[l]+""+ii[m]+""+ii[n];
                                        if(!str.matches("\\d\\d4\\d\\d\\d"))
                                        {
                                            if(!str.matches("[\\d]*35[\\d]*|[\\d]*53[\\d]*"))
                                            {
                                                if(a>0)
                                                {
                                                 for(int b=0;b<v.size();b++)
                                                 {
                                                 if(v.elementAt(b).equals(str))
                                                 {   b1=false;
                                                 break;
                                                 }
                                                
                                                 }   if(b1)
                                                 {
                                                   v.addElement(str);
                                                   a++;
                                                      System.out.print(str+" ");
                                                 }   
                                                 else
                                                 {
                                                 b1=true;
                                                 }
                                                
                                                   
                                                
                                                }
                                                else
                                                { v.addElement(str);
                                                 a++;
                                                 System.out.print(str+" ");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        
                    }
                    
                }
            }System.out.println("");
            System.out.print(a);
    //         for(int b=1;b<v.size();b++)
    //            {
    //            for(int i=0;i<b;i++)
    //            {
    //            if(v.elementAt(b).toString().equals(v.elementAt(i).toString()))
    //                    {
    //                      System.out.println("有重复"+v.elementAt(b));
    //                    }
    //            }
    //               //  System.out.println(v.size());
    //                                            
    //           } 
        }
    }
    总共198
    122345 122543 123245 123254 123425 123452 125234 125243 125423 125432 
    132245 132254 132425 132452 132524 132542 142325 142523 143225 143252 
    145223 145232 152234 152243 152324 152342 152423 152432 212345 212543 
    213245 213254 213425 213452 215234 215243 215423 215432 221345 221543 
    223145 223154 223415 223451 225134 225143 225413 225431 231245 231254 
    231425 231452 231524 231542 232145 232154 232415 232451 232514 232541 
    241325 241523 242315 242513 243125 243152 243215 243251 245123 245132 
    245213 245231 251234 251243 251324 251342 251423 251432 252134 252143 
    252314 252341 252413 252431 312245 312254 312425 312452 312524 312542 
    315224 315242 315422 321245 321254 321425 321452 321524 321542 322145 
    322154 322415 322451 322514 322541 325124 325142 325214 325241 325412 
    325421 341225 341252 341522 342125 342152 342215 342251 342512 342521 
    345122 345212 345221 412325 412523 413225 413252 415223 415232 421325 
    421523 422315 422513 423125 423152 423215 423251 425123 425132 425213 
    425231 431225 431252 431522 432125 432152 432215 432251 432512 432521 
    451223 451232 451322 452123 452132 452213 452231 452312 452321 512234 
    512243 512324 512342 512423 512432 513224 513242 513422 521234 521243 
    521324 521342 521423 521432 522134 522143 522314 522341 522413 522431 
    523124 523142 523214 523241 523412 523421 541223 541232 541322 542123 
    542132 542213 542231 542312 542321 543122 543212 543221 
      

  15.   

    呵呵,我不会java,我用C++编写了一下,得到的结果是300个,
    这是我在控制台下的全部代码!
    #include"iostream.h"
    void main()
    {
    int iiii=0;
    int data[505];
    cout<<"输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻"<<endl;
    int num=0;
    char strs[]={'2','2','4','3','1','5'};
    char str[7];
    str[6]='\0';
    int pos=-1;//3或者5所在的第一个位置
    for(int i0=1;i0<=5;i0++)//1
    {
    if(i0==3 ||i0==5)
    pos=i0;
    str[0]=strs[i0];
    int i1=0;
    while(i1<6)//2
    {
    if(i1!=i0)
    {
    if(i1==3 ||i1==5)//处理3和5相邻的情况
    {
    if(pos==-1)
    pos=i1;
    else
    if(pos-i1==1 || i1-pos==1)
    {
    i1++;
    continue;
    }
    }
    str[1]=strs[i1];
    int i2=0;
    while(i2<6)//3
    {
    if(i2!=i0 && i2!=i1 && i2!=2)//第三位不能是4
    {
    if(i2==3 ||i2==5)////处理3和5相邻的情况
    {
    if(pos==-1)
    pos=i2;
    else
    if(pos-i2==1 || i2-pos==1)
    {
    i2++;
    continue;
    }
    }
    str[2]=strs[i2];
    int i3=0;
    while(i3<6)//4
    {
    if(i3!=i0 && i3!=i1 && i3!=i2)
    {
    if(i3==3 ||i3==5)////处理3和5相邻的情况
    {
    if(pos==-1)
    pos=i3;
    else
    if(pos-i3==1 || i3-pos==1)
    {
    i3++;
    continue;
    }
    }
    str[3]=strs[i3];
    int i4=0;
    while(i4<6)//5
    {
    if(i4!=i0 && i4!=i1 && i4!=i2 && i4!=i3)
    {
    if(i4==3 ||i4==5)////处理3和5相邻的情况
    {
    if(pos==-1)
    pos=i4;
    else
    if(pos-i4==1 || i4-pos==1)
    {
    i4++;
    continue;
    }
    }
    str[4]=strs[i4];
    int i5=0;
    while(i5<6)//6
    {
    if(i5!=i0 && i5!=i1 && i5!=i2 && i5!=i3 && i5!=i4)
    {
    if(i5==3 ||i5==5)////处理3和5相邻的情况
    {
    if(pos==-1)
    pos=i5;
    else
    if(pos-i5==1 || i5-pos==1)
    {
    i5++;
    continue;
    }
    }
    str[5]=strs[i5];
    cout<<str<<endl;

    /*---------------------验证有没有重复的数-----------------
    int tem=(str[5]-48)+(str[4]-48)*10+(str[3]-48)*100+(str[2]-48)*1000+(str[1]-48)*10000+(str[0]-48)*100000;
    for(int ii=0;ii<num;ii++)
    if(data[ii]==tem)
    iiii=1;
    data[num]=tem;

    *///------------------------------------------------

    num++;
    if(i5==0)
    i5++;
    }
    i5++;
    }
    if(i4==0)
    i4++;
    }
    i4++;
    }
    if(i3==0)
    i3++;
    }
    i3++;
    }
    if(i2==0)
    i2++;
    }
    i2++;
    }
    if(i1==0)
    i1++;
    }
    i1++;
    }
    pos=-1;
    }
    cout<<"符合条件的组合个数为"<<num<<"个"<<endl;
    //if(iiii==1)
    // cout<<"有重复的数"<<endl;
    }这是我用MFC输出到文本的所有数字!
    输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
    223415   223451   223145   223154   223541   
    223514   221435   221453   221345   221354   
    221543   221534   225431   225413   225341   
    225314   225143   225134   242315   242351   
    242135   242153   242531   242513   243215   
    243251   243125   243152   243521   243512   
    241235   241253   241325   241352   241523   
    241532   245231   245213   245321   245312   
    245123   245132   232415   232451   232145   
    232154   232541   232514   231245   231254   
    231425   231452   231524   231542   235241   
    235214   235421   235412   235124   235142   
    212435   212453   212345   212354   212543   
    212534   213245   213254   213425   213452   
    213524   213542   215243   215234   215423   
    215432   215324   215342   252431   252413   
    252341   252314   252143   252134   253241   
    253214   253421   253412   253124   253142   
    251243   251234   251423   251432   251324   
    251342   422315   422351   422135   422153   
    422531   422513   423215   423251   423125   
    423152   423521   423512   421235   421253   
    421325   421352   421523   421532   425231   
    425213   425321   425312   425123   425132   
    432215   432251   432125   432152   432521   
    432512   431225   431252   431522   435221   
    435212   435122   412235   412253   412325   
    412352   412523   412532   413225   413252   
    413522   415223   415232   415322   452231   
    452213   452321   452312   452123   452132   
    453221   453212   453122   451223   451232   
    451322   322415   322451   322145   322154   
    322541   322514   321245   321254   321425   
    321452   321524   321542   325241   325214   
    325421   325412   325124   325142   342215   
    342251   342125   342152   342521   342512   
    341225   341252   341522   345221   345212   
    345122   312245   312254   312425   312452   
    312524   312542   315224   315242   315422   
    352241   352214   352421   352412   352124   
    352142   351224   351242   351422   122435   
    122453   122345   122354   122543   122534   
    123245   123254   123425   123452   123524   
    123542   125243   125234   125423   125432   
    125324   125342   142235   142253   142325   
    142352   142523   142532   143225   143252   
    143522   145223   145232   145322   132245   
    132254   132425   132452   132524   132542   
    135224   135242   135422   152243   152234   
    152423   152432   152324   152342   153224   
    153242   153422   522431   522413   522341   
    522314   522143   522134   523241   523214   
    523421   523412   523124   523142   521243   
    521234   521423   521432   521324   521342   
    542231   542213   542321   542312   542123   
    542132   543221   543212   543122   541223   
    541232   541322   532241   532214   532421   
    532412   532124   532142   531224   531242   
    531422   512243   512234   512423   512432   
    512324   512342   513224   513242   513422   符合条件的组合个数为 300个
      

  16.   

    补充说一下,
    if(i4==0) 
    i4++;
    这个代码是防止再次取第二个2,从而能保证结果不重复! 
      

  17.   

    to tsinghualangzi:看第二行结果:
    223514   221435   221453   221345   221354  3和5相邻不?
      

  18.   

    似乎去年的CSDN上, 有人问过这个题!!!!  而且也有结论的```
      

  19.   

    package test;import java.util.ArrayList;
    import java.util.List;/**
     * 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
     * 
     * @author JHF Team <[email protected]>
     * 
     * 
     * @copyright 2006-2007, BestWiz(Dalian) Co.,Ltd
     */
    public class MyTest {    /**
         * 将字符数组中的元素循环放入List<String>中返回
         * 
         * @return List<String>
         * @param String[]
         *            str
         * @author guoqiang <[email protected]>
         */
        public static List<String> getList(String[] str) {        List<String> list = new ArrayList<String>();
            for (int i = 0; i < str.length; i++) {
                list.add(str[i]);
            }
            return list;
        }    /**
         * 循环遍历List中的元素,得出所有的组合结果,并过滤掉第三位是“4”的组合。然後將結果放入List<String[]>中返回
         * 
         * @return List<String[]>
         * @param List
         *            <String> list
         * @author guoqiang <[email protected]>
         */
        public static List<String[]> getNewList(List<String> list) {        List<String[]> newlist = new ArrayList<String[]>();
            for (int i1 = 0; i1 < list.size(); i1++) {
                for (int i2 = 0; i2 < list.size(); i2++) {
                    for (int i3 = 0; i3 < list.size(); i3++) {
                        for (int i4 = 0; i4 < list.size(); i4++) {
                            for (int i5 = 0; i5 < list.size(); i5++) {
                                for (int i6 = 0; i6 < list.size(); i6++) {
                                    if ((i1 != i2 && i1 != i3 && i1 != i4 && i1 != i5 && i1 != i6)
                                            && (i2 != i1 && i2 != i3 && i2 != i4 && i2 != i5 && i2 != i6)
                                            && (i3 != i1 && i3 != i2 && i3 != i4 && i3 != i5 && i3 != i6)
                                            && (i4 != i1 && i4 != i2 && i4 != i3 && i4 != i5 && i4 != i6)
                                            && (i5 != i1 && i5 != i2 && i5 != i3 && i5 != i4 && i5 != i6)
                                            && (i6 != i1 && i6 != i2 && i6 != i3 && i6 != i4 && i6 != i5)) {
                                        String[] newStr = { list.get(i1), list.get(i2), list.get(i3), list.get(i4),
                                                list.get(i5), list.get(i6) };
                                        if ((!"4".equals(newStr[2])))
                                            newlist.add(newStr);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return newlist;
        }    /**
         * 将结果集中有3、5相连的过滤掉,然后将最后结果打印。
         * 
         * @return
         * @param List
         *            <String[]> newList
         * @author guoqiang <[email protected]>
         */
        public static void printList(List<String[]> newList) {        int count = 0;
            for (int i = 0; i < newList.size(); i++) {
                String str = newList.get(i)[0] + "," + newList.get(i)[1] + "," + newList.get(i)[2] + ","
                        + newList.get(i)[3] + "," + newList.get(i)[4] + "," + newList.get(i)[5];
                if (!(str.matches(".*(3,5).*") || str.matches(".*(5,3).*"))) {
                    count++;
                    System.out.println("No" + count + ": " + str);
                }
            }
        }    /**
         * main函数
         * 
         * @return
         * @param String[]
         *            args
         * @author guoqiang <[email protected]>
         */
        public static void main(String[] args) {        String[] str = { "1", "2", "2", "3", "4", "5" };
            List<String> list = getList(str);
            List<String[]> newList = getNewList(list);
            printList(newList);
        }
    }
      

  20.   

    No1: 1,2,2,3,4,5
    No2: 1,2,2,5,4,3
    No3: 1,2,3,2,4,5
    No4: 1,2,3,2,5,4
    No5: 1,2,3,4,2,5
    No6: 1,2,3,4,5,2
    No7: 1,2,5,2,3,4
    No8: 1,2,5,2,4,3
    No9: 1,2,5,4,2,3
    No10: 1,2,5,4,3,2
    No11: 1,2,2,3,4,5
    No12: 1,2,2,5,4,3
    No13: 1,2,3,2,4,5
    No14: 1,2,3,2,5,4
    No15: 1,2,3,4,2,5
    No16: 1,2,3,4,5,2
    No17: 1,2,5,2,3,4
    No18: 1,2,5,2,4,3
    No19: 1,2,5,4,2,3
    No20: 1,2,5,4,3,2
    No21: 1,3,2,2,4,5
    No22: 1,3,2,2,5,4
    No23: 1,3,2,4,2,5
    No24: 1,3,2,4,5,2
    No25: 1,3,2,5,2,4
    No26: 1,3,2,5,4,2
    No27: 1,3,2,2,4,5
    No28: 1,3,2,2,5,4
    No29: 1,3,2,4,2,5
    No30: 1,3,2,4,5,2
    No31: 1,3,2,5,2,4
    No32: 1,3,2,5,4,2
    No33: 1,4,2,3,2,5
    No34: 1,4,2,5,2,3
    No35: 1,4,2,3,2,5
    No36: 1,4,2,5,2,3
    No37: 1,4,3,2,2,5
    No38: 1,4,3,2,5,2
    No39: 1,4,3,2,2,5
    No40: 1,4,3,2,5,2
    No41: 1,4,5,2,2,3
    No42: 1,4,5,2,3,2
    No43: 1,4,5,2,2,3
    No44: 1,4,5,2,3,2
    No45: 1,5,2,2,3,4
    No46: 1,5,2,2,4,3
    No47: 1,5,2,3,2,4
    No48: 1,5,2,3,4,2
    No49: 1,5,2,4,2,3
    No50: 1,5,2,4,3,2
    No51: 1,5,2,2,3,4
    No52: 1,5,2,2,4,3
    No53: 1,5,2,3,2,4
    No54: 1,5,2,3,4,2
    No55: 1,5,2,4,2,3
    No56: 1,5,2,4,3,2
    No57: 2,1,2,3,4,5
    No58: 2,1,2,5,4,3
    No59: 2,1,3,2,4,5
    No60: 2,1,3,2,5,4
    No61: 2,1,3,4,2,5
    No62: 2,1,3,4,5,2
    No63: 2,1,5,2,3,4
    No64: 2,1,5,2,4,3
    No65: 2,1,5,4,2,3
    No66: 2,1,5,4,3,2
    No67: 2,2,1,3,4,5
    No68: 2,2,1,5,4,3
    No69: 2,2,3,1,4,5
    No70: 2,2,3,1,5,4
    No71: 2,2,3,4,1,5
    No72: 2,2,3,4,5,1
    No73: 2,2,5,1,3,4
    No74: 2,2,5,1,4,3
    No75: 2,2,5,4,1,3
    No76: 2,2,5,4,3,1
    No77: 2,3,1,2,4,5
    No78: 2,3,1,2,5,4
    No79: 2,3,1,4,2,5
    No80: 2,3,1,4,5,2
    No81: 2,3,1,5,2,4
    No82: 2,3,1,5,4,2
    No83: 2,3,2,1,4,5
    No84: 2,3,2,1,5,4
    No85: 2,3,2,4,1,5
    No86: 2,3,2,4,5,1
    No87: 2,3,2,5,1,4
    No88: 2,3,2,5,4,1
    No89: 2,4,1,3,2,5
    No90: 2,4,1,5,2,3
    No91: 2,4,2,3,1,5
    No92: 2,4,2,5,1,3
    No93: 2,4,3,1,2,5
    No94: 2,4,3,1,5,2
    No95: 2,4,3,2,1,5
    No96: 2,4,3,2,5,1
    No97: 2,4,5,1,2,3
    No98: 2,4,5,1,3,2
    No99: 2,4,5,2,1,3
    No100: 2,4,5,2,3,1
    No101: 2,5,1,2,3,4
    No102: 2,5,1,2,4,3
    No103: 2,5,1,3,2,4
    No104: 2,5,1,3,4,2
    No105: 2,5,1,4,2,3
    No106: 2,5,1,4,3,2
    No107: 2,5,2,1,3,4
    No108: 2,5,2,1,4,3
    No109: 2,5,2,3,1,4
    No110: 2,5,2,3,4,1
    No111: 2,5,2,4,1,3
    No112: 2,5,2,4,3,1
    No113: 2,1,2,3,4,5
    No114: 2,1,2,5,4,3
    No115: 2,1,3,2,4,5
    No116: 2,1,3,2,5,4
    No117: 2,1,3,4,2,5
    No118: 2,1,3,4,5,2
    No119: 2,1,5,2,3,4
    No120: 2,1,5,2,4,3
    No121: 2,1,5,4,2,3
    No122: 2,1,5,4,3,2
    No123: 2,2,1,3,4,5
    No124: 2,2,1,5,4,3
    No125: 2,2,3,1,4,5
    No126: 2,2,3,1,5,4
    No127: 2,2,3,4,1,5
    No128: 2,2,3,4,5,1
    No129: 2,2,5,1,3,4
    No130: 2,2,5,1,4,3
    No131: 2,2,5,4,1,3
    No132: 2,2,5,4,3,1
    No133: 2,3,1,2,4,5
    No134: 2,3,1,2,5,4
    No135: 2,3,1,4,2,5
    No136: 2,3,1,4,5,2
    No137: 2,3,1,5,2,4
    No138: 2,3,1,5,4,2
    No139: 2,3,2,1,4,5
    No140: 2,3,2,1,5,4
    No141: 2,3,2,4,1,5
    No142: 2,3,2,4,5,1
    No143: 2,3,2,5,1,4
    No144: 2,3,2,5,4,1
    No145: 2,4,1,3,2,5
    No146: 2,4,1,5,2,3
    No147: 2,4,2,3,1,5
    No148: 2,4,2,5,1,3
    No149: 2,4,3,1,2,5
    No150: 2,4,3,1,5,2
    No151: 2,4,3,2,1,5
    No152: 2,4,3,2,5,1
    No153: 2,4,5,1,2,3
    No154: 2,4,5,1,3,2
    No155: 2,4,5,2,1,3
    No156: 2,4,5,2,3,1
    No157: 2,5,1,2,3,4
    No158: 2,5,1,2,4,3
    No159: 2,5,1,3,2,4
    No160: 2,5,1,3,4,2
    No161: 2,5,1,4,2,3
    No162: 2,5,1,4,3,2
    No163: 2,5,2,1,3,4
    No164: 2,5,2,1,4,3
    No165: 2,5,2,3,1,4
    No166: 2,5,2,3,4,1
    No167: 2,5,2,4,1,3
    No168: 2,5,2,4,3,1
    No169: 3,1,2,2,4,5
    No170: 3,1,2,2,5,4
    No171: 3,1,2,4,2,5
    No172: 3,1,2,4,5,2
    No173: 3,1,2,5,2,4
    No174: 3,1,2,5,4,2
    No175: 3,1,2,2,4,5
    No176: 3,1,2,2,5,4
    No177: 3,1,2,4,2,5
    No178: 3,1,2,4,5,2
    No179: 3,1,2,5,2,4
    No180: 3,1,2,5,4,2
    No181: 3,1,5,2,2,4
    No182: 3,1,5,2,4,2
    No183: 3,1,5,2,2,4
    No184: 3,1,5,2,4,2
    No185: 3,1,5,4,2,2
    No186: 3,1,5,4,2,2
    No187: 3,2,1,2,4,5
    No188: 3,2,1,2,5,4
    No189: 3,2,1,4,2,5
    No190: 3,2,1,4,5,2
    No191: 3,2,1,5,2,4
    No192: 3,2,1,5,4,2
    No193: 3,2,2,1,4,5
    No194: 3,2,2,1,5,4
    No195: 3,2,2,4,1,5
    No196: 3,2,2,4,5,1
    No197: 3,2,2,5,1,4
    No198: 3,2,2,5,4,1
    No199: 3,2,5,1,2,4
    No200: 3,2,5,1,4,2
    No201: 3,2,5,2,1,4
    No202: 3,2,5,2,4,1
    No203: 3,2,5,4,1,2
    No204: 3,2,5,4,2,1
    No205: 3,2,1,2,4,5
    No206: 3,2,1,2,5,4
    No207: 3,2,1,4,2,5
    No208: 3,2,1,4,5,2
    No209: 3,2,1,5,2,4
    No210: 3,2,1,5,4,2
    No211: 3,2,2,1,4,5
    No212: 3,2,2,1,5,4
    No213: 3,2,2,4,1,5
    No214: 3,2,2,4,5,1
    No215: 3,2,2,5,1,4
    No216: 3,2,2,5,4,1
    No217: 3,2,5,1,2,4
    No218: 3,2,5,1,4,2
    No219: 3,2,5,2,1,4
    No220: 3,2,5,2,4,1
    No221: 3,2,5,4,1,2
    No222: 3,2,5,4,2,1
    No223: 3,4,1,2,2,5
    No224: 3,4,1,2,5,2
    No225: 3,4,1,2,2,5
    No226: 3,4,1,2,5,2
    No227: 3,4,1,5,2,2
    No228: 3,4,1,5,2,2
    No229: 3,4,2,1,2,5
    No230: 3,4,2,1,5,2
    No231: 3,4,2,2,1,5
    No232: 3,4,2,2,5,1
    No233: 3,4,2,5,1,2
    No234: 3,4,2,5,2,1
    No235: 3,4,2,1,2,5
    No236: 3,4,2,1,5,2
    No237: 3,4,2,2,1,5
    No238: 3,4,2,2,5,1
    No239: 3,4,2,5,1,2
    No240: 3,4,2,5,2,1
    No241: 3,4,5,1,2,2
    No242: 3,4,5,1,2,2
    No243: 3,4,5,2,1,2
    No244: 3,4,5,2,2,1
    No245: 3,4,5,2,1,2
    No246: 3,4,5,2,2,1
    No247: 4,1,2,3,2,5
    No248: 4,1,2,5,2,3
    No249: 4,1,2,3,2,5
    No250: 4,1,2,5,2,3
    No251: 4,1,3,2,2,5
    No252: 4,1,3,2,5,2
    No253: 4,1,3,2,2,5
    No254: 4,1,3,2,5,2
    No255: 4,1,5,2,2,3
    No256: 4,1,5,2,3,2
    No257: 4,1,5,2,2,3
    No258: 4,1,5,2,3,2
    No259: 4,2,1,3,2,5
    No260: 4,2,1,5,2,3
    No261: 4,2,2,3,1,5
    No262: 4,2,2,5,1,3
    No263: 4,2,3,1,2,5
    No264: 4,2,3,1,5,2
    No265: 4,2,3,2,1,5
    No266: 4,2,3,2,5,1
    No267: 4,2,5,1,2,3
    No268: 4,2,5,1,3,2
    No269: 4,2,5,2,1,3
    No270: 4,2,5,2,3,1
    No271: 4,2,1,3,2,5
    No272: 4,2,1,5,2,3
    No273: 4,2,2,3,1,5
    No274: 4,2,2,5,1,3
    No275: 4,2,3,1,2,5
    No276: 4,2,3,1,5,2
    No277: 4,2,3,2,1,5
    No278: 4,2,3,2,5,1
    No279: 4,2,5,1,2,3
    No280: 4,2,5,1,3,2
    No281: 4,2,5,2,1,3
    No282: 4,2,5,2,3,1
    No283: 4,3,1,2,2,5
    No284: 4,3,1,2,5,2
    No285: 4,3,1,2,2,5
    No286: 4,3,1,2,5,2
    No287: 4,3,1,5,2,2
    No288: 4,3,1,5,2,2
    No289: 4,3,2,1,2,5
    No290: 4,3,2,1,5,2
    No291: 4,3,2,2,1,5
    No292: 4,3,2,2,5,1
    No293: 4,3,2,5,1,2
    No294: 4,3,2,5,2,1
    No295: 4,3,2,1,2,5
    No296: 4,3,2,1,5,2
    No297: 4,3,2,2,1,5
    No298: 4,3,2,2,5,1
    No299: 4,3,2,5,1,2
    No300: 4,3,2,5,2,1
    No301: 4,5,1,2,2,3
    No302: 4,5,1,2,3,2
    No303: 4,5,1,2,2,3
    No304: 4,5,1,2,3,2
    No305: 4,5,1,3,2,2
    No306: 4,5,1,3,2,2
    No307: 4,5,2,1,2,3
    No308: 4,5,2,1,3,2
    No309: 4,5,2,2,1,3
    No310: 4,5,2,2,3,1
    No311: 4,5,2,3,1,2
    No312: 4,5,2,3,2,1
    No313: 4,5,2,1,2,3
    No314: 4,5,2,1,3,2
    No315: 4,5,2,2,1,3
    No316: 4,5,2,2,3,1
    No317: 4,5,2,3,1,2
    No318: 4,5,2,3,2,1
    No319: 5,1,2,2,3,4
    No320: 5,1,2,2,4,3
    No321: 5,1,2,3,2,4
    No322: 5,1,2,3,4,2
    No323: 5,1,2,4,2,3
    No324: 5,1,2,4,3,2
    No325: 5,1,2,2,3,4
    No326: 5,1,2,2,4,3
    No327: 5,1,2,3,2,4
    No328: 5,1,2,3,4,2
    No329: 5,1,2,4,2,3
    No330: 5,1,2,4,3,2
    No331: 5,1,3,2,2,4
    No332: 5,1,3,2,4,2
    No333: 5,1,3,2,2,4
    No334: 5,1,3,2,4,2
    No335: 5,1,3,4,2,2
    No336: 5,1,3,4,2,2
    No337: 5,2,1,2,3,4
    No338: 5,2,1,2,4,3
    No339: 5,2,1,3,2,4
    No340: 5,2,1,3,4,2
    No341: 5,2,1,4,2,3
    No342: 5,2,1,4,3,2
    No343: 5,2,2,1,3,4
    No344: 5,2,2,1,4,3
    No345: 5,2,2,3,1,4
    No346: 5,2,2,3,4,1
    No347: 5,2,2,4,1,3
    No348: 5,2,2,4,3,1
    No349: 5,2,3,1,2,4
    No350: 5,2,3,1,4,2
    No351: 5,2,3,2,1,4
    No352: 5,2,3,2,4,1
    No353: 5,2,3,4,1,2
    No354: 5,2,3,4,2,1
    No355: 5,2,1,2,3,4
    No356: 5,2,1,2,4,3
    No357: 5,2,1,3,2,4
    No358: 5,2,1,3,4,2
    No359: 5,2,1,4,2,3
    No360: 5,2,1,4,3,2
    No361: 5,2,2,1,3,4
    No362: 5,2,2,1,4,3
    No363: 5,2,2,3,1,4
    No364: 5,2,2,3,4,1
    No365: 5,2,2,4,1,3
    No366: 5,2,2,4,3,1
    No367: 5,2,3,1,2,4
    No368: 5,2,3,1,4,2
    No369: 5,2,3,2,1,4
    No370: 5,2,3,2,4,1
    No371: 5,2,3,4,1,2
    No372: 5,2,3,4,2,1
    No373: 5,4,1,2,2,3
    No374: 5,4,1,2,3,2
    No375: 5,4,1,2,2,3
    No376: 5,4,1,2,3,2
    No377: 5,4,1,3,2,2
    No378: 5,4,1,3,2,2
    No379: 5,4,2,1,2,3
    No380: 5,4,2,1,3,2
    No381: 5,4,2,2,1,3
    No382: 5,4,2,2,3,1
    No383: 5,4,2,3,1,2
    No384: 5,4,2,3,2,1
    No385: 5,4,2,1,2,3
    No386: 5,4,2,1,3,2
    No387: 5,4,2,2,1,3
    No388: 5,4,2,2,3,1
    No389: 5,4,2,3,1,2
    No390: 5,4,2,3,2,1
    No391: 5,4,3,1,2,2
    No392: 5,4,3,1,2,2
    No393: 5,4,3,2,1,2
    No394: 5,4,3,2,2,1
    No395: 5,4,3,2,1,2
    No396: 5,4,3,2,2,1
      

  21.   

    40楼C++写的有有错,第一行有出现 223541这样的话3,5连续所以不行啊。47楼重复啦
    No34: 1,4,2,5,2,3 
    No35: 1,4,2,3,2,5 
    No36: 1,4,2,5,2,3 
      

  22.   

    昨天编写的时候大意了,把3和5相邻的情况判断错了,现在改过来了!确实是198个数!控制台的全部代码如下:(C++的):#include"iostream.h" 
    void main() 
    {
    int iiii=0; 
    int data[505]; 
    cout <<"输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻" <<endl; 
    int num=0; 
    char strs[]={'2','2','4','3','1','5'}; 
    char str[7]; 
    str[6]='\0'; 
    int pos=-1;//3或者5所在的第一个位置 
    for(int i0=1;i0 <=5;i0++)//1 

    if((i0==3)||(i0==5)) 
    pos=0; 
    str[0]=strs[i0]; 
    int i1=0; 
    while(i1 <6)//2 

    if(i1!=i0) 

    if((i1==3)||(i1==5))//处理3和5相邻的情况 

    if(pos==-1) 
    pos=1; 
    else 
    if(pos==0) 

    i1++; 
    continue; 


    str[1]=strs[i1]; 
    int i2=0; 
    while(i2 <6)//3 

    if(i2!=i0 && i2!=i1 && i2!=2)//第三位不能是4 

    if((i2==3)||(i2==5))////处理3和5相邻的情况 

    if(pos==-1) 
    pos=2; 
    else 
    if(pos==1) 

    i2++; 
    continue; 


    str[2]=strs[i2]; 
    int i3=0; 
    while(i3 <6)//4 

    if(i3!=i0 && i3!=i1 && i3!=i2) 

    if((i3==3)||(i3==5))////处理3和5相邻的情况 

    if(pos==-1) 
    pos=3; 
    else 
    if(pos==2) 

    i3++; 
    continue; 


    str[3]=strs[i3]; 
    int i4=0; 
    while(i4 <6)//5 

    if(i4!=i0 && i4!=i1 && i4!=i2 && i4!=i3) 

    if((i4==3)||(i4==5))////处理3和5相邻的情况 

    if(pos==-1) 
    pos=4; 
    else 
    if(pos==3) 

    i4++; 
    continue; 


    str[4]=strs[i4]; 
    int i5=0; 
    while(i5 <6)//6 

    if(i5!=i0 && i5!=i1 && i5!=i2 && i5!=i3 && i5!=i4) 

    if((i5==3)||(i5==5))////处理3和5相邻的情况 
    {  
    if(pos==4) 

    i5++; 
    continue; 


    str[5]=strs[i5]; 
    cout <<str <<endl; 

    /*//---------------------验证有没有重复的数----------------- 
    for(int x=0;x<5;x++)
    if((str[x]-48+str[x+1]-48)==8)
    iiii++;
    int tem=(str[5]-48)+(str[4]-48)*10+(str[3]-48)*100+(str[2]-48)*1000+(str[1]-48)*10000+(str[0]-48)*100000; 
    for(int ii=0;ii<num;ii++) 
    if(data[ii]==tem) 
    iiii=1; 
    data[num]=tem; 


    *///------------------------------------------------ 

    num++; 
    if(i5==0) 
    i5++; 

    i5++; 
    }
    if(4==pos)
    pos=-1;
    if(i4==0) 
    i4++; 

    i4++; 
    }
    if(3==pos)
    pos=-1;
    if(i3==0) 
    i3++; 

    i3++; 
    }
    if(2==pos)
    pos=-1;
    if(i2==0) 
    i2++; 

    i2++; 
    }
    if(1==pos)
    pos=-1;
    if(i1==0) 
    i1++; 

    i1++; 

    pos=-1; 

    cout <<"符合条件的组合个数为" <<num <<"个" <<endl; 
    //if(iiii!=0) 
    //cout<<"有重复的数"<<iiii<<endl; 
    } 用MFC把结果输出到文本:输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻223415    223451    223145    223154    221345    
    221543    225431    225413    225143    225134    
    242315    242513    243215    243251    243125    
    243152    241325    241523    245231    245213    
    245123    245132    232415    232451    232145    
    232154    232541    232514    231245    231254    
    231425    231452    231524    231542    212345    
    212543    213245    213254    213425    213452    
    215243    215234    215423    215432    252431    
    252413    252341    252314    252143    252134    
    251243    251234    251423    251432    251324    
    251342    422315    422513    423215    423251    
    423125    423152    421325    421523    425231    
    425213    425123    425132    432215    432251    
    432125    432152    432521    432512    431225    
    431252    431522    412325    412523    413225    
    413252    415223    415232    452231    452213    
    452321    452312    452123    452132    451223    
    451232    451322    322415    322451    322145    
    322154    322541    322514    321245    321254    
    321425    321452    321524    321542    325241    
    325214    325421    325412    325124    325142    
    342215    342251    342125    342152    342521    
    342512    341225    341252    341522    345221    
    345212    345122    312245    312254    312425    
    312452    312524    312542    315224    315242    
    315422    122345    122543    123245    123254    
    123425    123452    125243    125234    125423    
    125432    142325    142523    143225    143252    
    145223    145232    132245    132254    132425    
    132452    132524    132542    152243    152234    
    152423    152432    152324    152342    522431    
    522413    522341    522314    522143    522134    
    523241    523214    523421    523412    523124    
    523142    521243    521234    521423    521432    
    521324    521342    542231    542213    542321    
    542312    542123    542132    543221    543212    
    543122    541223    541232    541322    512243    
    512234    512423    512432    512324    512342    
    513224    513242    513422    
    符合要求的组合个数为198个
      

  23.   

    package test;import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;/**
     * 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
     * 
     * @author JHF Team <[email protected]>
     * 
     * 
     * @copyright 2006-2007, BestWiz(Dalian) Co.,Ltd
     */
    public class MyTest {    /**
         * 将字符数组中的元素循环放入List<String>中返回
         * 
         * @return List<String>
         * @param String[]
         *            str
         * @author guoqiang <[email protected]>
         */
        public static List<String> getList(String[] str) {        List<String> list = new ArrayList<String>();
            for (int i = 0; i < str.length; i++) {
                list.add(str[i]);
            }
            return list;
        }    /**
         * 循环遍历List中的元素,得出所有的组合结果,并过滤掉第三位是“4”的组合。然後將結果放入List<String[]>中返回
         * 
         * @return List<String[]>
         * @param List
         *            <String> list
         * @author guoqiang <[email protected]>
         */
        public static List<String[]> getNewList(List<String> list) {        List<String[]> newlist = new ArrayList<String[]>();
            for (int i1 = 0; i1 < list.size(); i1++) {
                for (int i2 = 0; i2 < list.size(); i2++) {
                    for (int i3 = 0; i3 < list.size(); i3++) {
                        for (int i4 = 0; i4 < list.size(); i4++) {
                            for (int i5 = 0; i5 < list.size(); i5++) {
                                for (int i6 = 0; i6 < list.size(); i6++) {
                                    if ((i1 != i2 && i1 != i3 && i1 != i4 && i1 != i5 && i1 != i6)
                                            && (i2 != i1 && i2 != i3 && i2 != i4 && i2 != i5 && i2 != i6)
                                            && (i3 != i1 && i3 != i2 && i3 != i4 && i3 != i5 && i3 != i6)
                                            && (i4 != i1 && i4 != i2 && i4 != i3 && i4 != i5 && i4 != i6)
                                            && (i5 != i1 && i5 != i2 && i5 != i3 && i5 != i4 && i5 != i6)
                                            && (i6 != i1 && i6 != i2 && i6 != i3 && i6 != i4 && i6 != i5)) {
                                        String[] newStr = { list.get(i1), list.get(i2), list.get(i3), list.get(i4),
                                                list.get(i5), list.get(i6) };
                                        if ((newlist.size() == 0) && (!"4".equals(newStr[2])))
                                            newlist.add(newStr);
                                        boolean b = true;
                                        if ((newlist.size() > 0) && (!"4".equals(newStr[2]))) {
                                            for (int i = 0; i < newlist.size(); i++) {
                                                if (Arrays.equals(newStr, newlist.get(i)))
                                                    b = false;
                                            }
                                            if (b)
                                                newlist.add(newStr);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return newlist;
        }    /**
         * 将结果集中有3、5相连的过滤掉,然后将最后结果打印。
         * 
         * @return
         * @param List
         *            <String[]> newList
         * @author guoqiang <[email protected]>
         */
        public static void printList(List<String[]> newList) {        int count = 0;
            for (int i = 0; i < newList.size(); i++) {
                String str = newList.get(i)[0] + "," + newList.get(i)[1] + "," + newList.get(i)[2] + ","
                        + newList.get(i)[3] + "," + newList.get(i)[4] + "," + newList.get(i)[5];
                if (!(str.matches(".*(3,5).*") || str.matches(".*(5,3).*"))) {
                    count++;
                    System.out.println("No" + count + ": " + str);
                }
            }
        }    /**
         * main函数
         * 
         * @return
         * @param String[]
         *            args
         * @author guoqiang <[email protected]>
         */
        public static void main(String[] args) {        String[] str = { "1", "2", "2", "3", "4", "5" };
            List<String> list = getList(str);
            List<String[]> newList = getNewList(list);
            printList(newList);
        }
    }
      

  24.   

    No1: 1,2,2,3,4,5
    No2: 1,2,2,5,4,3
    No3: 1,2,3,2,4,5
    No4: 1,2,3,2,5,4
    No5: 1,2,3,4,2,5
    No6: 1,2,3,4,5,2
    No7: 1,2,5,2,3,4
    No8: 1,2,5,2,4,3
    No9: 1,2,5,4,2,3
    No10: 1,2,5,4,3,2
    No11: 1,3,2,2,4,5
    No12: 1,3,2,2,5,4
    No13: 1,3,2,4,2,5
    No14: 1,3,2,4,5,2
    No15: 1,3,2,5,2,4
    No16: 1,3,2,5,4,2
    No17: 1,4,2,3,2,5
    No18: 1,4,2,5,2,3
    No19: 1,4,3,2,2,5
    No20: 1,4,3,2,5,2
    No21: 1,4,5,2,2,3
    No22: 1,4,5,2,3,2
    No23: 1,5,2,2,3,4
    No24: 1,5,2,2,4,3
    No25: 1,5,2,3,2,4
    No26: 1,5,2,3,4,2
    No27: 1,5,2,4,2,3
    No28: 1,5,2,4,3,2
    No29: 2,1,2,3,4,5
    No30: 2,1,2,5,4,3
    No31: 2,1,3,2,4,5
    No32: 2,1,3,2,5,4
    No33: 2,1,3,4,2,5
    No34: 2,1,3,4,5,2
    No35: 2,1,5,2,3,4
    No36: 2,1,5,2,4,3
    No37: 2,1,5,4,2,3
    No38: 2,1,5,4,3,2
    No39: 2,2,1,3,4,5
    No40: 2,2,1,5,4,3
    No41: 2,2,3,1,4,5
    No42: 2,2,3,1,5,4
    No43: 2,2,3,4,1,5
    No44: 2,2,3,4,5,1
    No45: 2,2,5,1,3,4
    No46: 2,2,5,1,4,3
    No47: 2,2,5,4,1,3
    No48: 2,2,5,4,3,1
    No49: 2,3,1,2,4,5
    No50: 2,3,1,2,5,4
    No51: 2,3,1,4,2,5
    No52: 2,3,1,4,5,2
    No53: 2,3,1,5,2,4
    No54: 2,3,1,5,4,2
    No55: 2,3,2,1,4,5
    No56: 2,3,2,1,5,4
    No57: 2,3,2,4,1,5
    No58: 2,3,2,4,5,1
    No59: 2,3,2,5,1,4
    No60: 2,3,2,5,4,1
    No61: 2,4,1,3,2,5
    No62: 2,4,1,5,2,3
    No63: 2,4,2,3,1,5
    No64: 2,4,2,5,1,3
    No65: 2,4,3,1,2,5
    No66: 2,4,3,1,5,2
    No67: 2,4,3,2,1,5
    No68: 2,4,3,2,5,1
    No69: 2,4,5,1,2,3
    No70: 2,4,5,1,3,2
    No71: 2,4,5,2,1,3
    No72: 2,4,5,2,3,1
    No73: 2,5,1,2,3,4
    No74: 2,5,1,2,4,3
    No75: 2,5,1,3,2,4
    No76: 2,5,1,3,4,2
    No77: 2,5,1,4,2,3
    No78: 2,5,1,4,3,2
    No79: 2,5,2,1,3,4
    No80: 2,5,2,1,4,3
    No81: 2,5,2,3,1,4
    No82: 2,5,2,3,4,1
    No83: 2,5,2,4,1,3
    No84: 2,5,2,4,3,1
    No85: 3,1,2,2,4,5
    No86: 3,1,2,2,5,4
    No87: 3,1,2,4,2,5
    No88: 3,1,2,4,5,2
    No89: 3,1,2,5,2,4
    No90: 3,1,2,5,4,2
    No91: 3,1,5,2,2,4
    No92: 3,1,5,2,4,2
    No93: 3,1,5,4,2,2
    No94: 3,2,1,2,4,5
    No95: 3,2,1,2,5,4
    No96: 3,2,1,4,2,5
    No97: 3,2,1,4,5,2
    No98: 3,2,1,5,2,4
    No99: 3,2,1,5,4,2
    No100: 3,2,2,1,4,5
    No101: 3,2,2,1,5,4
    No102: 3,2,2,4,1,5
    No103: 3,2,2,4,5,1
    No104: 3,2,2,5,1,4
    No105: 3,2,2,5,4,1
    No106: 3,2,5,1,2,4
    No107: 3,2,5,1,4,2
    No108: 3,2,5,2,1,4
    No109: 3,2,5,2,4,1
    No110: 3,2,5,4,1,2
    No111: 3,2,5,4,2,1
    No112: 3,4,1,2,2,5
    No113: 3,4,1,2,5,2
    No114: 3,4,1,5,2,2
    No115: 3,4,2,1,2,5
    No116: 3,4,2,1,5,2
    No117: 3,4,2,2,1,5
    No118: 3,4,2,2,5,1
    No119: 3,4,2,5,1,2
    No120: 3,4,2,5,2,1
    No121: 3,4,5,1,2,2
    No122: 3,4,5,2,1,2
    No123: 3,4,5,2,2,1
    No124: 4,1,2,3,2,5
    No125: 4,1,2,5,2,3
    No126: 4,1,3,2,2,5
    No127: 4,1,3,2,5,2
    No128: 4,1,5,2,2,3
    No129: 4,1,5,2,3,2
    No130: 4,2,1,3,2,5
    No131: 4,2,1,5,2,3
    No132: 4,2,2,3,1,5
    No133: 4,2,2,5,1,3
    No134: 4,2,3,1,2,5
    No135: 4,2,3,1,5,2
    No136: 4,2,3,2,1,5
    No137: 4,2,3,2,5,1
    No138: 4,2,5,1,2,3
    No139: 4,2,5,1,3,2
    No140: 4,2,5,2,1,3
    No141: 4,2,5,2,3,1
    No142: 4,3,1,2,2,5
    No143: 4,3,1,2,5,2
    No144: 4,3,1,5,2,2
    No145: 4,3,2,1,2,5
    No146: 4,3,2,1,5,2
    No147: 4,3,2,2,1,5
    No148: 4,3,2,2,5,1
    No149: 4,3,2,5,1,2
    No150: 4,3,2,5,2,1
    No151: 4,5,1,2,2,3
    No152: 4,5,1,2,3,2
    No153: 4,5,1,3,2,2
    No154: 4,5,2,1,2,3
    No155: 4,5,2,1,3,2
    No156: 4,5,2,2,1,3
    No157: 4,5,2,2,3,1
    No158: 4,5,2,3,1,2
    No159: 4,5,2,3,2,1
    No160: 5,1,2,2,3,4
    No161: 5,1,2,2,4,3
    No162: 5,1,2,3,2,4
    No163: 5,1,2,3,4,2
    No164: 5,1,2,4,2,3
    No165: 5,1,2,4,3,2
    No166: 5,1,3,2,2,4
    No167: 5,1,3,2,4,2
    No168: 5,1,3,4,2,2
    No169: 5,2,1,2,3,4
    No170: 5,2,1,2,4,3
    No171: 5,2,1,3,2,4
    No172: 5,2,1,3,4,2
    No173: 5,2,1,4,2,3
    No174: 5,2,1,4,3,2
    No175: 5,2,2,1,3,4
    No176: 5,2,2,1,4,3
    No177: 5,2,2,3,1,4
    No178: 5,2,2,3,4,1
    No179: 5,2,2,4,1,3
    No180: 5,2,2,4,3,1
    No181: 5,2,3,1,2,4
    No182: 5,2,3,1,4,2
    No183: 5,2,3,2,1,4
    No184: 5,2,3,2,4,1
    No185: 5,2,3,4,1,2
    No186: 5,2,3,4,2,1
    No187: 5,4,1,2,2,3
    No188: 5,4,1,2,3,2
    No189: 5,4,1,3,2,2
    No190: 5,4,2,1,2,3
    No191: 5,4,2,1,3,2
    No192: 5,4,2,2,1,3
    No193: 5,4,2,2,3,1
    No194: 5,4,2,3,1,2
    No195: 5,4,2,3,2,1
    No196: 5,4,3,1,2,2
    No197: 5,4,3,2,1,2
    No198: 5,4,3,2,2,1
      

  25.   

    有意思还有搞这个的是测试效率吗?198个应该是对的
    public class Com {
    private Vector<String> numbers; private StringBuffer res = new StringBuffer();
     
    private Vector<String> Result, midnumber, mid1, mid2, mid3, mid4, mid5; public Com() {
    numbers = new Vector<String>();
    numbers.addElement("1");
    numbers.addElement("2");
    numbers.addElement("2");
    numbers.addElement("3");
    numbers.addElement("4");
    numbers.addElement("5");
    Result = new Vector<String>();
    midnumber = new Vector<String>();
    mid1 = new Vector<String>();
    mid2 = new Vector<String>();
    mid3 = new Vector<String>();
    mid4 = new Vector<String>();
    mid5 = new Vector<String>();
    midnumber = numbers;
    for (int i = 0; i < 6; i++) { change(mid1, midnumber); mid1.removeElementAt(i);
    for (int j = 0; j < 5; j++) { change(mid2, mid1);
    mid2.removeElementAt(j);
    for (int k = 0; k < 4; k++) { change(mid3, mid2);
    mid3.removeElementAt(k);
    for (int l = 0; l < 3; l++) { change(mid4, mid3);
    mid4.removeElementAt(l);
    for (int m = 0; m < 2; m++) {
    res.append(midnumber.get(i));
    res.append(mid1.get(j));
    res.append(mid2.get(k));
    res.append(mid3.get(l));
    res.append(mid4.get(m));
    change(mid5, mid4);
    mid5.remove(m);
    res.append(mid5.get(0)); if (res.charAt(2) != '4' && res.indexOf("53") == -1
    && res.indexOf("35") == -1
    && Result.indexOf(res.toString()) == -1) {
    Result.add(res.toString());
    }
    res.setLength(0);
    } }
    }
    }
    }
    System.out.println("个数:"+Result.size());
    for(int i=0;i<Result.size();i++)
    {
    System.out.print(Result.get(i)+" ");
    if(i%10==0&&i!=0)
    {
    System.out.println();
    }
    }
    } public void change(Vector<String> v1, Vector<String> v2) {
    v1.setSize(0);
    for (int i = 0; i < v2.size(); i++) {
    v1.addElement(v2.get(i));
    }
    } public static void main(String[] s) {
    new Com();
    }
    }个数:198
    122345 122543 123245 123254 123425 123452 125234 125243 125423 125432 132245 
    132254 132425 132452 132524 132542 142325 142523 143225 143252 145223 
    145232 152234 152243 152324 152342 152423 152432 212345 212543 213245 
    213254 213425 213452 215234 215243 215423 215432 221345 221543 223145 
    223154 223415 223451 225134 225143 225413 225431 231245 231254 231425 
    231452 231524 231542 232145 232154 232415 232451 232514 232541 241325 
    241523 242315 242513 243125 243152 243215 243251 245123 245132 245213 
    245231 251234 251243 251324 251342 251423 251432 252134 252143 252314 
    252341 252413 252431 312245 312254 312425 312452 312524 312542 315224 
    315242 315422 321245 321254 321425 321452 321524 321542 322145 322154 
    322415 322451 322514 322541 325124 325142 325214 325241 325412 325421 
    341225 341252 341522 342125 342152 342215 342251 342512 342521 345122 
    345212 345221 412325 412523 413225 413252 415223 415232 421325 421523 
    422315 422513 423125 423152 423215 423251 425123 425132 425213 425231 
    431225 431252 431522 432125 432152 432215 432251 432512 432521 451223 
    451232 451322 452123 452132 452213 452231 452312 452321 512234 512243 
    512324 512342 512423 512432 513224 513242 513422 521234 521243 521324 
    521342 521423 521432 522134 522143 522314 522341 522413 522431 523124 
    523142 523214 523241 523412 523421 541223 541232 541322 542123 542132 
    542213 542231 542312 542321 543122 543212 543221 
      

  26.   

    结果应该是240个!
    共有 240 个1 122345 122543 123245 123254 123425
    6 123452 124325 124523 125234 125243
    11 125423 125432 132245 132254 132425
    16 132452 132524 132542 134225 134252
    21 134522 142325 142523 143225 143252
    26 145223 145232 152234 152243 152324
    31 152342 152423 152432 154223 154232
    36 154322 212345 212543 213245 213254
    41 213425 213452 214325 214523 215234
    46 215243 215423 215432 221345 221543
    51 223145 223154 223415 223451 224315
    56 224513 225134 225143 225413 225431
    61 231245 231254 231425 231452 231524
    66 231542 232145 232154 232415 232451
    71 232514 232541 234125 234152 234215
    76 234251 234512 234521 241325 241523
    81 242315 242513 243125 243152 243215
    86 243251 245123 245132 245213 245231
    91 251234 251243 251324 251342 251423
    96 251432 252134 252143 252314 252341
    101 252413 252431 254123 254132 254213
    106 254231 254312 254321 312245 312254
    111 312425 312452 312524 312542 314225
    116 314252 314522 315224 315242 315422
    121 321245 321254 321425 321452 321524
    126 321542 322145 322154 322415 322451
    131 322514 322541 324125 324152 324215
    136 324251 324512 324521 325124 325142
    141 325214 325241 325412 325421 341225
    146 341252 341522 342125 342152 342215
    151 342251 342512 342521 345122 345212
    156 345221 412325 412523 413225 413252
    161 415223 415232 421325 421523 422315
    166 422513 423125 423152 423215 423251
    171 425123 425132 425213 425231 431225
    176 431252 431522 432125 432152 432215
    181 432251 432512 432521 451223 451232
    186 451322 452123 452132 452213 452231
    191 452312 452321 512234 512243 512324
    196 512342 512423 512432 513224 513242
    201 513422 514223 514232 514322 521234
    206 521243 521324 521342 521423 521432
    211 522134 522143 522314 522341 522413
    216 522431 523124 523142 523214 523241
    221 523412 523421 524123 524132 524213
    226 524231 524312 524321 541223 541232
    231 541322 542123 542132 542213 542231
    236 542312 542321 543122 543212 543221以下是我的代码:
    package niko7.csdn;import java.util.Iterator;
    import java.util.Set;
    import java.util.TreeSet;/**
     * 输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
     * 
     * 转载、引用必须保留此段信息。
     * @author niko7,(顾法华,杭州)
     * @email [email protected]
     *
     */
    public class MyTest
    {
    public static void main(String[] args)
    {
    int[] nums = new int[]{1,2,2,3,4,5};
    int len = nums.length;
    Set set = new TreeSet();
    int[] indexs = new int[]{0,0,0,0,0,0};
    for(indexs[0]=0; indexs[0]<len; indexs[0]++)
    for(indexs[1]=0; indexs[1]<len; indexs[1]++)
    for(indexs[2]=0; indexs[2]<len; indexs[2]++)
    for(indexs[3]=0; indexs[3]<len; indexs[3]++)
    for(indexs[4]=0; indexs[4]<len; indexs[4]++)
    for(indexs[5]=0; indexs[5]<len; indexs[5]++)
    {
    //同一个字符重复出现的跳过
    //两个2不是同一个字符
    boolean skip = false;
    a:
    for(int i=0;i<len;i++)
    for(int j=i+1;j<len;j++)
    {
    if(indexs[i]==indexs[j])
    {
    skip = true;
    break a;
    }
    }
    if(skip)
    {
    continue;
    }

    //4不能在第三位
    if(4==nums[2])
    {
    continue;
    }

    //3和5不能相邻
    boolean ok = true;
    int[] tmpResult = new int[]{nums[indexs[0]],nums[indexs[1]],nums[indexs[2]],nums[indexs[3]],nums[indexs[4]],nums[indexs[5]]};
    for(int i=0; i<len-1; i++)
    {
    if(2==Math.abs(tmpResult[i]-tmpResult[i+1]) && 8==(tmpResult[i]+tmpResult[i+1]))
    {
    ok = false;
    break;
    }
    }

    if(ok)
    {
    //自动去重,其实这是针对两个2的
    set.add(""+tmpResult[0]+tmpResult[1]+tmpResult[2]+tmpResult[3]+tmpResult[4]+tmpResult[5]);
    }
    }
    System.out.println("共有 "+set.size()+" 个");
    Iterator iter = set.iterator();
    int no = 1;
    while(iter.hasNext())
    {
    if(no%5==1)
    {
    System.out.println();
    System.out.print(no);
    }
    no++;
    System.out.print("\t" + iter.next());
    }
    }
    }
    代码blog:http://blog.csdn.net/niko7/archive/2008/05/20/2462303.aspx
      

  27.   

    因该是198个,写错了一个判断条件……
    //4不能在第三位
    if(4==nums[indexs[2]])
    {
    continue;
    }下面是结果:共有 198 个1 122345 122543 123245 123254 123425 123452 125234 125243 125423 125432
    11 132245 132254 132425 132452 132524 132542 142325 142523 143225 143252
    21 145223 145232 152234 152243 152324 152342 152423 152432 212345 212543
    31 213245 213254 213425 213452 215234 215243 215423 215432 221345 221543
    41 223145 223154 223415 223451 225134 225143 225413 225431 231245 231254
    51 231425 231452 231524 231542 232145 232154 232415 232451 232514 232541
    61 241325 241523 242315 242513 243125 243152 243215 243251 245123 245132
    71 245213 245231 251234 251243 251324 251342 251423 251432 252134 252143
    81 252314 252341 252413 252431 312245 312254 312425 312452 312524 312542
    91 315224 315242 315422 321245 321254 321425 321452 321524 321542 322145
    101 322154 322415 322451 322514 322541 325124 325142 325214 325241 325412
    111 325421 341225 341252 341522 342125 342152 342215 342251 342512 342521
    121 345122 345212 345221 412325 412523 413225 413252 415223 415232 421325
    131 421523 422315 422513 423125 423152 423215 423251 425123 425132 425213
    141 425231 431225 431252 431522 432125 432152 432215 432251 432512 432521
    151 451223 451232 451322 452123 452132 452213 452231 452312 452321 512234
    161 512243 512324 512342 512423 512432 513224 513242 513422 521234 521243
    171 521324 521342 521423 521432 522134 522143 522314 522341 522413 522431
    181 523124 523142 523214 523241 523412 523421 541223 541232 541322 542123
    191 542132 542213 542231 542312 542321 543122 543212 543221
      

  28.   

    用概率论计算了下240个,计算过程:
    第一步:不考虑任何条件,总的有6!=720个;
    第二步:不考虑有2,2这2个相同的数,计算35,53在一起的情况有2*5!=240;
    第三步:720-240=480个;
    第四步:480/2=240.
    结果为240.
    下面为本人所写代码,没有用面向对象思想,所以写的比较难看,而且只能针对{1,2,2,3,4,5}这个数组
        public static void main(String args[]) {
            int[] a = {1,2,2,3,4,5};
            int num=0;
            int first2=0; //first2用来记录第一个2出现的位置
            int second2=0; //second2用来记录第二个2出现的位置        String strList[] = new String[240];
            for(int i = 0; i < 6; i++) {
                if(i == 1)
                    first2 = 1;
                if(i == 2)
                    second2 = 1;
                for(int j = 0; j < 6; j++) {
                    if(i==j)
                        continue;
                    if(j == 1)
                        first2 = 2;
                    if(j == 2)
                        second2 = 2;
                    for(int k = 0; k < 6; k++) {
                        if(i==k || j==k)
                            continue;
                        if(k == 1)
                            first2 = 3;
                        if(k == 2)
                            second2 = 3;
                        for(int l = 0; l < 6; l++) {
                            if(i==l || j==l || k==l)
                                continue;
                            if(l == 1)
                                first2 = 4;
                            if(l == 2)
                                second2 = 4;
                            for(int m = 0; m < 6; m++) {
                                if(i==m || j==m || k==m || l==m)
                                    continue;
                                if(m == 1)
                                    first2 = 5;
                                if(m == 2)
                                    second2 = 5;
                                for(int n = 0; n < 6; n++) {
                                    if(i==n || j==n || k==n || l==n || m==n)
                                        continue;
                                    if(n == 1)
                                        first2 = 6;
                                    if(n == 2)
                                        second2 = 6;
                                    
                                    if(first2 < second2)
                                        continue;
                                    
                                    String str = ""+a[i]+a[j]+a[k]+a[l]+a[m]+a[n];
                                    if(str.matches("\\d*35\\d*") || str.matches("\\d*53\\d*"))
                                        continue;
                                    
                                    System.out.println(str);
                                    strList[num] = str;
                                    num++;
                                }
                            }
                        }
                    }
                }
            }
            
            System.out.println(num);
            for(int i = 0; i < strList.length; i++) { //这里的2个for循环是想看看这240个数中有没相同的
                for(int j = 0; j < strList.length; j++) {
                    if(i != j && strList[i] == strList[j])
                        System.out.println("第"+i+"个 = 第"+j+"个");
                }
            }
        }
      

  29.   

    其实用高中的数学知识就可以算出总数啦.我得出数学结果是468很可能是错的.编程用的是笨方法,理论上可行,编译出来的个数却远远没有468.
    521234  325124  523142  341252  345212  522134  225413  152432  423251  521243
    412523  312254  225143  312452  122345  231425  132452  542123  252143  145232
    212345  213245  321524  125243  232145  452321  543221  143252  251234  225431
    122543  423125  512234  541223  223154  342251  513422  231254  342521  425213
    232541  421325  252431  522341  231245  231452  522431  142325  341522  152234
    231524  425123  432215  252314  252413  521423  251423  523421  522413  425231
    321254  451322  523124  325421  152324  245231  223415  215234  125423  212543
    523412  132542  123245  252341  523214  342215  243215  325412  542231  413252
    413225  322154  312542  513242  152342  452132  215243  251432  232451  342152
    132524  523241  452231  431252  132245  221345  322415  322514  415223  312245
    152243  123254  512432  542213  245123  452312  322145  142523  125234  543212
    312524  451232  245213  422315  512243  321425  241523  242315  251342  415232
    432125  345221  243251  143225  132254  321452  543122  541232  315224  431522
    342125  521342  243152  345122  432251  225134  213425  322451  513224  315242
    512342  243125  342512  322541  252134  325142  512423  452213  223145  325241
    125432  215432  432521  432512  341225  242513  521324  213254  432152  542312
    232154  521432  512324  123452  251243  321245  232415  315422  412325  522314
    542321  425132  215423  422513  145223  232514  312425  223451  132425  522143
    152423  541322  123425  421523  251324  321542  542132  451223  423215  452123
    325214  423152  213452  245132  431225  241325  221543  231542
    import java.util.*;
    public class Pailie1 {
    public static void main(String args[]){
    int n=0;
    int m;
    int ac[]={0,1,2,2,3,4,5};
    int a[]={0,1,2,2,3,4,5};
    int all=0;
    int j;
    int b[][]=new int[468][6];
    Random rand=new Random();
    for(all=0;all<468;){
    for(int i=0;i<=6;i++)
    a[i]=ac[i];
    for(int i=6;i>=1;i--){
    j=rand.nextInt(i)+1;
    b[all][i-1]=a[j];

    if(j>=i)
    break;
    a[j]=a[++j];
    }
    }n=0;
    for(int i=1;i<6;i++){

    if(b[all][2]==4){
    n=1;
    break;
    }
    if((b[all][i-1]==5||b[all][i-1]==3)&&(b[all][i]==3||b[all][i]==5))
    n=1;
    }


    if(n==1)continue;
    n=0;
    for(m=0;m<all;m++){

    for(int i=0;i<6;i++){
    if(b[m][i]!=b[all][i]){
    break;}
    else
    if(i==5)n=-1;
    }
    if(n==-1)break;
    }

    if(n==-1)continue;
    for(int k=0;k<6;k++){
    System.out.print(b[all][k]);
    if(k==5)
    System.out.print("\t");
    }
    all++;
    }
    }}
      

  30.   

    上面那个编译都不通过,改了一下,还是很笨.快来点有创造性算法.
    import java.util.*;
    public class Pailie1 {
    public static void main(String args[]){
    int n=0;
    int m;
    int ac[]={0,1,2,2,3,4,5};
    int a[]={0,1,2,2,3,4,5};
    int all=0;
    int j;
    int b[][]=new int[198][6];
    Random rand=new Random();
    for(all=0;all<198;){
        for(int i=0;i<=6;i++)
        a[i]=ac[i];
        for(int i=6;i>=1;i--){
            j=rand.nextInt(i)+1;
            b[all][i-1]=a[j];
            while(true){
            if(j>=i)
            break;
            a[j]=a[++j];
            }
          }
    n=0;
            for(int i=1;i<6;i++){
                
                if(b[all][2]==4){
                    n=1;
                    break;
                    }
                if((b[all][i-1]==5||b[all][i-1]==3)&&(b[all][i]==3||b[all][i]==5))
                n=1;
                }
                
        
                if(n==1)continue;
                n=0;
            for(m=0;m<all;m++){
                
                for(int i=0;i<6;i++){
                    if(b[m][i]!=b[all][i]){
                    break;}
                    else
                    if(i==5)n=-1;
                }
                if(n==-1)break;
                }
        
                if(n==-1)continue;
        for(int k=0;k<6;k++){    
    System.out.print(b[all][k]);
    if(k==5)
    System.out.print("\t");
    }
            all++;
            }
        }}