1. 程式人生 > >組合:abc三個字元的所有組合

組合:abc三個字元的所有組合

求所有組合也就是abc各個位是否選取的問題,第一位2中可能,第二位2種。。。所以一共有2^n種。用0表示不取,1表示選取,這樣可以用110這樣的形式表示ab。abc一共的表示形式從0到2^3-1。然後按位與運算,如果結果為1就輸出當前位,結果0不輸出。
 

public class Comb {

public static void main(String[] args) { char[] chs = {'a','b','c'}; comb(chs); }   public static void comb(char[] chs) {
int len = chs.length; int nbits = 1 << len; for (int i = 0; i < nbits; ++i) { int t; for (int j = 0; j < len; j++) { t = 1 << j; if ((t & i) != 0) { // 與運算,同為1時才會是1 System.out.print(chs[j]); } } System.out.println(); } } } 來源: https://blog.csdn.net/Tredemere/article/details/52815965