【2015/10/13】打印1,2,2,3,4,5六个数的组合,4不在第三位,3和5不能相邻

来源:互联网 发布:pickit2软件下载 编辑:程序博客网 时间:2024/05/16 06:11

       去面试一家公司的现场面试题,只能想到for循环方法,递归暂时没想出来,晚上补充。

        

package com.basic;import java.util.HashSet;import java.util.Iterator;import java.util.Set;//1,2,2,3,4,5的所有排列组合,并且4不在第三位,3和5不能在一起public class Huawei {public static void main(String[] arg){Set s=new HashSet();    int[] arr={1,2,2,3,4,5};for(int i=0;i<arr.length;i++){for(int j=0;j<arr.length;j++){if(j==i||arr[i]*arr[j]==15){continue;}for(int k=0;k<arr.length;k++){if(k==i||k==j||arr[j]*arr[k]==15||arr[k]==4){continue;}for(int m=0;m<arr.length;m++){if(m==i||m==j||m==k||arr[k]*arr[m]==15){continue;}for(int n=0;n<arr.length;n++){if(n==i||n==j||n==k||n==m||arr[n]*arr[m]==15){continue;}for(int p=0;p<arr.length;p++){if(p==i||p==j||p==n||p==m||p==k||arr[p]*arr[n]==15){continue;}  int temp=arr[i]*100000+arr[j]*10000+arr[k]*1000+arr[m]*100+arr[n]*10+arr[p];  s.add(temp);}}}}}}Iterator it=s.iterator();for(int i=0;i<s.size();i++){System.out.println(it.next());}System.out.println("长度"+s.size());}}
               其中set是为了消去重复元素。


0 0