在 C++ 中检查给定数字是否稀疏

c++server side programmingprogramming更新于 2024/9/23 1:17:00

在本节中,我们将了解如何检查数字是否稀疏。如果数字的二进制表示中没有两个或两个以上连续的 1,则该数字被称为稀疏数字。假设一个数字是 72。这是 01001000。这里没有两个或两个以上连续的 1。

要检查数字是否稀疏,我们将数字作为 n,然后将该数字向右移动一位,并执行按位与。如果结果为 0,则为稀疏数字,否则不是。

示例

#include <iostream>
using namespace std;
bool isSparseNumber(int n) {
   int res = n & (n >> 1);
   if(res == 0)
      return true;
   return false;
}
int main() {
   int num = 72;
   if(isSparseNumber(num)){
      cout << "这是稀疏数";
   } else {
      cout << "这不是稀疏数";
   }
}

输出

这是稀疏数

相关文章