//A.java
public class A {
final static int N=10;
public static void main(String[] args) {
int count = 0;
byte a[][] = exec(N);
for (int i = 0; i < a.length; i++) {
System.out.print(count++ + ":");
for (int j = 0; j < a[0].length; j++) {
if (a[i][j] == 1) {
System.out.print(j);
}
}
System.out.println();
}
}
static byte[][] exec(int n) {
byte[][] a = new byte[(int) Math.pow(2, n)][n];
for (int i = 0; i < a.length; i++) {
// 使用Java自带的库函数,转为二进制。位数从右至左
for (int j = 0; j < Integer.toBinaryString(i).length(); j++) {
if (Integer.toBinaryString(i).charAt(Integer.toBinaryString(i).length() - 1 - j) == '1') {
a[i][n - 1 - j] = 1;
}
}
}
return a;
}
}