通过位运算,打印出n的全部组合
public static void getCombinations( int n) { String str = Integer.toString(n); int len = str.length(); ArrayList<ArrayList> data = new ArrayList<ArrayList>(); int nCnt = len; int nBit = 1<<nCnt; for (int i = 1; i <= nBit; i++) { ArrayList<Integer> tempdata = new ArrayList<Integer>(); for (int j = 0; j < nCnt; j++) { if ((1<<j & i ) != 0) { tempdata.add(str.charAt(j) - 48); } } if(!tempdata.isEmpty()) data.add(tempdata); } for(int z = 0 ; z < data.size(); z++) System.out.println( data.get(z).toString()); }