Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 숫자가 C++에서 희소인지 아닌지 확인

<시간/>

이 섹션에서는 숫자가 희소인지 여부를 확인하는 방법을 살펴보겠습니다. 숫자의 이진 표현에 2개 또는 2개 이상의 연속 1이 있는 경우 숫자는 희소하다고 합니다. 숫자가 72와 같다고 가정합니다. 이것은 01001000입니다. 여기에는 2개 이상의 연속 1이 없습니다.

숫자가 희박한지 확인하기 위해 숫자를 n으로 취한 다음 해당 숫자를 오른쪽으로 1비트 이동하고 비트 단위 AND를 수행합니다. 결과가 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 << "This is sparse number";
   } else {
      cout << "This is not sparse number";
   }
}

출력

This is sparse number