1 for(j = 1; j <= num; j <<= 1){ 2 value[cout ++] = j * value1[i]; 3 num -= j; 4 } 5 if(num > 0){ 6 value[cout ++] = num * value1[i]; 7 }
如num = 4, 将其优化成1 2,这样4以内的数都可以用1 2组合表示。