题解 | #小红的字符生成#
小红的字符生成
https://www.nowcoder.com/practice/f8659377ca104b1aad45dd2fb564c940
//实际是将求正整数n能分解成最少多少个2的次方的合集的问题 void decomposeIntoPowersOfTwo(unsigned int n, std::vector<int>& powers) { for (int i = 0; n > 0; ++i) { if (n & 1) { // 如果当前位是1 powers.push_back(i); // 将对应的指数添加到集合中 } n >>= 1; // 右移一位 } }