#12320. 判断一个数是否是 2 的幂
判断一个数是否是 2 的幂
判断一个数是否是 2 的幂
题目描述
给定一个整数 n,判断它是否是 2 的幂。
- 2 的幂的定义:存在一个整数
k ≥ 0,使得 - 例如:
1 = 2^02 = 2^14 = 2^28 = 2^3都是 2 的幂。
输入格式
输入一个整数 n。
输出格式
如果 n 是 2 的幂,输出 YES;否则输出 NO。
数据范围
0 ≤ n ≤ 10^9
输入输出样例
输入 1
16
输出 1
YES
输入 2
12
输出 2
NO
思路提示
-
2 的幂在二进制表示中有且只有 一位是 1,其余都是 0。
-
例如:
1 (0001)2 (0010)4 (0100)8 (1000)
-
位运算判断公式:
n > 0 && (n & (n - 1)) == 0(n & (n - 1))会将二进制表示中最低位的1清除;- 如果结果为 0,说明原数只有一个
1,即是 2 的幂。