检查数字是否有其他模式的位-在C ++中设置1
让我们考虑我们有一个整数n。问题是检查此整数是否具有等效的二进制二进制模式。备用模式表示101010…。
方法类似于:使用二进制等效项检查每个数字,如果两个连续的相同,则返回false,否则返回true。
示例
#include <iostream>
using namespace std;
bool hasAlternatePattern(unsigned int n) {
int previous = n % 2;
n = n/2;
while (n > 0) {
int current = n % 2;
if (current == previous) // If current bit is same as previous
return false;
previous = current;
n = n / 2;
}
return true;
}
int main() {
unsigned int number = 42;
if(hasAlternatePattern(number))
cout << "Has alternating pattern";
else
cout << "Has no alternating pattern";
}输出结果
Has alternating pattern
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短