제목 설명
정수가 주어지면 2의 거듭 제곱인지 확인하는 함수를 작성합니다.
예 1 :
输入: 1
输出: true
解释: 20 = 1
示例 2:
输入: 16
输出: true
解释: 24 = 16
示例 3:
输入: 218
输出: false
문제 해결 아이디어
내 생각은 입력 숫자의 이진 형식으로 1의 수를 세는 것입니다. 변환 된 이진 문자열에 1 1 만 있으면 2의 거듭 제곱이고 그렇지 않으면 그렇지 않습니다.
암호
bool isPowerOfTwo(int n){
int count=0;
while(n){
count+= n%2;
n/=2;
}return count==1?true:false;
}