面试刷题第17天
LeetCode刷题——231. 2 的幂
1、题目描述
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2的x次方 ,则认为 n 是 2 的幂次方。
2、解题思路
该题与326. 3的幂的题,解题思路相同。
(1)如果n小于1,返回false。
(2)当n大于1时,如果n跟2取余数不为0,则返回false;若和2取余数为0,则n除2,直到n不大于1。
(3)n等于1,返回true。
Java代码如下:
class Solution {
public boolean isPowerOfTwo(int n) {
if(n < 1){
return false;
}
while(n > 1){
if(n % 2 != 0){
return false;
}else{
n /= 2;
}
}
return true;
}
}