2的幂

作者: 422ccfa02512 | 来源:发表于2020-12-14 23:57 被阅读0次

题目描述

难度级别:简单

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 20 = 1

示例 2:

输入: 16
输出: true
解释: 24 = 16

示例 3:

输入: 218
输出: false

解题思路

法一

当整数n大于1时,对其进行迭代,通过对连续2取模判断是否等于0,当遇到不为0时,直接输出false。

const isPowerOfTwo = function(n) {
    if (n === 0) return false

    while(n > 1) {
        if (n % 2 !== 0) return false
        n /= 2
    }

    return true
};
  • 优化代码
const isPowerOfTwo = function(n) {
    if (n < 1) return false
    while(n % 2 == 0) n /= 2
    
    return n === 1
};

位运算

通过n & (n - 1) 是否为0进行判断。因为一个数是2的幂次方,则这个2进制数必然只有一个1,若求x-1,则它的1位变为0,1后面的0位变为1,在求与运算,这是值为0。

const isPowerOfTwo = function(n) {
    return n > 0 && (n & (n - 1)) === 0;
};

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/power-of-two

相关文章

  • 2018-10-21

    知识点1:幂的运算 (1)同底数幂的乘法法则: 同底数幂相乘,底数不变,指数相加 (2)幂的乘方法则: 幂的乘方,...

  • 2的幂

    问题来源:Power of Two 即判断一个整数是否为2的幂,注意这里的整数有可能是负整数,某些针对正整数的算法...

  • 2的幂

    题目描述 难度级别:简单 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1输出: ...

  • 分治法的常见问题

    计算x的n次幂 朴素算法:xxx...... 分治算法: n为偶数:x的n/2次幂*x的n/2次幂 n为奇数:x的...

  • 郑州轻工业大学oj题解(c语言)-1005: 整数幂

    1005: 整数幂 题目描述 输入3个整数,输出它们的1次幂、2次幂和3次幂。 输入 输入3整数,用空格隔开。 输...

  • 判断一个数是否是2的n次幂

    解题思路 1:如何得到2的n次幂,2*2*2 2:将传入的数据进行“循环除以2”直到该数据=2那么该数据就是2的次幂

  • HashMap扩容时为何每次扩容为原来的2倍

    初始容量为2的幂幂数,扩容后的容量也是2的幂数,则元素在新表中的位置要么不动,要么满足新位置=原长度+原位置。原因...

  • 一口气说出8种幂等性解决重复提交的方案,面试官懵了!(附代码)

    1.什么是幂等 在我们编程中常见幂等 1)select查询天然幂等 2)delete删除也是幂等,删除同一个多次...

  • 接口幂等性书目录

    1.幂等性定义 1.1 数学定义 1.2 HTTP规范的定义 2. 何种接口提供幂等性 2.1 HTTP支持幂等性...

  • 服务幂等

    1.读幂等 1.1 select 天然幂等 2.写幂等 2.1 insert 请求方携带唯一ID 2.2 upda...

网友评论

      本文标题:2的幂

      本文链接:https://www.haomeiwen.com/subject/csxigktx.html