C++编程中的一些骚操作(持续更新ing…)

[cc lang = “cpp” escaped = “true”]
// 判断相邻两数是否相差1
bool diffOne(vector& row) {
for (int i = 0; i < row.size(); i += 2)
// 适用于0-1 2-3 3-4的组合
// 若需要判断1-2 3-4,则只需把row[i]和row[i+1]分别-1即可
if ((row[i] ^ 1) == row[i + 1]) return 1;
return 0;
}
[/cc]

[cc lang = “cpp” escaped = “true”]
// 计算一个数的二进制形式中有多少个“1”比特位
int totalOnes(int n) {
int count = 0;
while (n) {
n = n & (n – 1);
count++;
}
return count;
}
[/cc]

[cc lang = “cpp” escaped = “true”]
// 计算2的n次幂
int exponent_of_2 (int n) {
return 1 << n;
}
[/cc]



Leave a Reply

Your email address will not be published. Required fields are marked *