zoukankan      html  css  js  c++  java
  • [LeetCode][JavaScript]Power of Two

    Power of Two

    Given an integer, write a function to determine if it is a power of two.

    https://leetcode.com/problems/power-of-two/


    二分。

    2的整数次幂,要么开方后是整数(这个数也是2的整数次幂),要么除以2之后再开方后是整数。继续递归判断开方后的结果直到碰到1或者2。

    比如1024(2^10),是由两个32(2^5)相乘;2048(2^11),是由两个32(2^5)相乘,再乘以2。

     1 /**
     2  * @param {number} n
     3  * @return {boolean}
     4  */
     5 var isPowerOfTwo = function(n) {
     6     if(n < 1){
     7         return false;
     8     }else if(n === 2 || n === 1){
     9         return true;
    10     }else{
    11         var sqrt = Math.sqrt(n);
    12         if(sqrt === parseInt(sqrt)){
    13             return isPowerOfTwo(sqrt);
    14         }else{
    15             n = n / 2;
    16             sqrt = Math.sqrt(n);
    17             if(sqrt === parseInt(sqrt)){
    18                 return isPowerOfTwo(sqrt);
    19             }else{
    20                 return false;
    21             }
    22         }
    23     }
    24 };
  • 相关阅读:
    线性筛素数
    redis集成springmvc
    shiro登录权限认证
    jQuery插件
    maven多项目配置
    w
    触发器
    后悔了可以找我我们是朋友
    url upload data
    排队
  • 原文地址:https://www.cnblogs.com/Liok3187/p/4624171.html
Copyright © 2011-2022 走看看