0231. 2 的幂 #
- 标签:位运算、数学
- 难度:简单
题目大意 #
给定一个整数,判断它是否是 2 的幂次方。
解题思路 #
最简单的是循环。不断判断 n 是否能整除 2,若能整除,则让 n 整除 2,直到 n < 2。若最后 n == 1,则返回 True,否则则返回 False。
另一种方式是数论判断。
因为 n 的最大值为 $2^{31}-1$。计算出在 n 的范围内,2 的幂次方最大为 $3^{30} = 1073741824$。
2 为质数,则 $2^{30}$ 的除数只有 $2^0, 2^1, …, 2^{30}$。所以若 n 为 2 的幂次方,则 n 肯定能被 $2^{30}$ 整除,直接判断即可。
代码 #
|
|