`

1,2,3,4,5,6共6个数, 组成一个没有重复数字的六位数,4不能在第二位,2和3不能邻接,请列出所有可能的组合.

    博客分类:
  • IQ
 
阅读更多
package IQ;

import java.util.Set;
import java.util.TreeSet;

public class MyTest {  
  public static void main(String args[]) {  
    char[] number = new char[] { '1', '2', '2', '3', '4', '5' };  
    perm(number, 0, number.length - 1);  
    System.out.println(set.size());  
    int cols = 10;  
    for (String s : set) {  
      System.out.print(s + " ");  
      if (cols-- == 1) {  
        System.out.println();  
        cols = 10;  
      }  
    }  
  }  
  public static void addNumber(String str) {  
    set.add(str);  
  }  
  public static Set<String> set = new TreeSet<String>();  
  public static void perm(char[] n, int beg, int end) {  
    if (beg == end) {  
      String result = String.valueOf(n);  
      if (n[2] == '4')  
        return;  
      if (result.contains("35") || result.contains("53"))  
        return;  
      addNumber(String.valueOf(n));  
      return;  
    }  
    for (int i = beg; i <= end; ++i) {  
      swap(n, beg, i);  
      perm(n, beg + 1, end);  
      swap(n, beg, i);  
    }  
  }  
  public static int number = 0;  
  public static void swap(char[] n, int a, int b) {  
    char temp = n[a];  
    n[a] = n[b];  
    n[b] = temp;  
  }  
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics