#12320. 判断一个数是否是 2 的幂
判断一个数是否是 2 的幂
判断一个数是否是 2 的幂
题目描述
给定一个整数 n
,判断它是否是 2 的幂。
- 2 的幂的定义:存在一个整数
k ≥ 0
,使得 - 例如:
1 = 2^0
2 = 2^1
4 = 2^2
8 = 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 的幂。