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

C++의 4의 거듭제곱


정수가 있다고 가정합니다. 4의 거듭제곱인지 아닌지 확인해야 합니다.

따라서 입력이 16과 같으면 출력이 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • num <0이면 -

    • 거짓을 반환

  • num &(num - 1)이 0이 아닌 경우 -

    • 거짓을 반환

  • (num &01010101010101010101010101010101)이 0이면 -

    • 거짓을 반환

  • true를 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool isPowerOfFour(int num){
      if (num < 0)
         return false;
      if (num & (num - 1))
         return false;
      if (!(num & 0x55555555))
         return false;
      return true;
   }
};
main(){
   Solution ob;
   cout << (ob.isPowerOfFour(64));
}

입력

64

출력

1