檢查一個數二進位制位是否交替出現 - C++ 中的 set 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP