주어진 숫자가 2의 거듭제곱인지 확인합니다. 먼저 아래의 숫자가 2의 거듭제곱인지 아닌지 확인합니다. 이 코드는 숫자가 홀수인지 확인한 다음 0 또는 홀수가 될 때까지 동시에 나눕니다. 0이 되면 거듭제곱 2이고 그렇지 않으면 그렇지 않습니다.
더 나은 선택은 숫자의 로그를 취하는 것입니다. 정수이면 n은 2의 거듭제곱이고 그렇지 않으면 n입니다. 2의 거듭제곱인 숫자:
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... 22 = 4 25 = 32 210 = 1024
Input: 8 Output: Number is power of 2
설명
이에 대한 간단한 방법은 밑이 2인 숫자의 로그를 취하는 것입니다. 정수를 얻으면 숫자는 2의 거듭제곱이 됩니다.
N이 짝수인 경우 단순히 N을 2로 반복적으로 나눔으로써. 1로 끝나면 N은 2의 거듭제곱입니다.
예시
#include <iostream> using namespace std; int main() { int n=8; if(n>0) { while(n%2 == 0) { n/=2; } if(n == 1) { cout<<"Number is power of 2"<<endl; } } if(n == 0 || n != 1) { cout<<"Number is not power of 2"<<endl; } return 0; }