組合:abc三個字元的所有組合
阿新 • • 發佈:2018-11-15
求所有組合也就是abc各個位是否選取的問題,第一位2中可能,第二位2種。。。所以一共有2^n種。用0表示不取,1表示選取,這樣可以用110這樣的形式表示ab。abc一共的表示形式從0到2^3-1。然後按位與運算,如果結果為1就輸出當前位,結果0不輸出。
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
public class Comb {
public static void main(String[] args) { char[] chs = {'a','b','c'}; comb(chs); } public static void comb(char[] chs) {