笑死嘞,1.29的题,属实想让大家好好跨年
我的解法:
class Solution {
public:
int numberOfSteps(int num) {
int count=0;
while(num){
if(num%2){
num-=1;
}else{
num/=2;
}
count++;
}
return count;
}
};
C++ 等语言可以用 __builtin_clz 和 __builtin_popcount 这类函数来求出二进制前导零数目和二进制位 1 的个数。
其中对于__builtin_popcount 的原理理解
有哪些令人拍案叫绝的代码/优化? - Comzyh的回答 - 知乎 https://www.zhihu.com/question/52726115/answer/131768874