用途给定一个整数N,将其转换成多个2的幂次相加 例如: N = 200 N = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 73 int N = 200;int[] res = new int[100];int k = 1, idx = 0;while (k <= N) { res[idx++] = k; N -= k; k *= 2;} 用途多重背包的优化,将一个多重背包问题转换成01背包问题