Kiểm tra mẫu bit luân phiên (101010...) bằng cách duyệt từng bit. So sánh bit hiện tại với bit trước, nếu bằng nhau thì không luân phiên.
Ví dụ
#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)
return false;
previous = current;
n = n / 2;
}
return true;
}
int main() {
unsigned int number = 42; // 101010
if(hasAlternatePattern(number))
cout << "Has alternating pattern";
else
cout << "Has no alternating pattern";
}
Kết quả
Has alternating pattern