检查数字是否在 C++ 中有两个相邻的设置为 1 的位。
我们将在此看到,如果一个数字在其二进制表示形式中有相邻的设置位。假设数字 12 有两个连续的 1(12 = 1100)。
若要检查这种类型的数字,这个想法非常简单。我们将数字移位 1 位,然后进行位与运算。如果位与运算的结果不为零,则必须有一些连续的 1。
示例
#include <iostream>
using namespace std;
bool hasConsecutiveOnes(int n) {
if((n & (n >> 1)) == 1){
return true;
}else{
return false;
}
}
int main() {
int num = 67; //1000011
if(hasConsecutiveOnes(num)){
cout << "Has Consecutive 1s";
}else{
cout << "Has No Consecutive 1s";
}
}输出
Has Consecutive 1s
广告
数据结构
联网
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP