关闭

【Leetcode Algorithm】Power of Two

标签: leetcodealgorithm
87人阅读 评论(0) 收藏 举报
分类:
Given an integer, write a function to determine if it is a power of two.
第一次尝试代码:
public class Solution {
    public boolean isPowerOfTwo(int n) {
        //如果为0,则false
        if(n==0){
            return false;
        }
        //2^0=1
        if(n==1){
            return true;
        }
        //n为奇数则肯定不是,若是偶数则递归解决
        if(n%2!=0){
            return false;
        }
        else{
            Solution s = new Solution();
            return s.isPowerOfTwo(n/2);
        }
    }
}


第二次尝试代码:
public class Solution {
    public boolean isPowerOfTwo(int n) {
        //负数与0都不是
        if(n<=0){
            return false;
        }
        //如果n与n-1与运算之后不为0,则表明n的二进制数1的个数大于1,则判定肯定不是
        else if((n&(n-1))!=0){
            return false;
        }
        else{
            return true;
        }
    }
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6826次
    • 积分:410
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类