Easy-题目22:231. Power of Two

原创 2016年05月30日 20:08:12

题目原文:
Given an integer, write a function to determine if it is a power of two.
题目大意:
给出一个整数,判断是不是2的幂。
题目分析:
跟上题如出一辙,但还有一种方法是利用位运算,即2的幂的最高位是1,其余位全是0这一性质,判断n和n-1按位与是否等于0来解决。@15-信安-L。
源码:(language:c)
递归解法:

bool isPowerOfTwo(int n) {
    return (n==0||n==1)?n:(n%2?0:isPowerOfTwo(n/2));
}

按位与解法:

bool isPowerOfTwo(int n) {
  return (n&n-1)==0&&n>0;
}

暴力枚举:

bool isPowerOfTwo(int n) {
   return (n==1||n==2||n==4||n==8||n==16||n==32||n==64||n==128||n==256||n==512||n==1024||n==2048||n==4096||n==8192||n==16384||n==32768||n==65536||n==131072||n==262144||n==524288||n==1048576||n==2097152||n==4194304||n==8388608||n==16777216||n==33554432||n==67108864||n==134217728||n==268435456||n==536870912||n==1073741824);
}

成绩:
三种算法都是4ms,beats44.98%,众数4ms,55.02%。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

leetcode 231: Power of Two

leetcode 231: Power of Two python, java, c++
  • xudli
  • xudli
  • 2015年07月07日 05:01
  • 10502

leetcode 231. Power of Two 判断是否为2的幂 Java

231. Power of Two Given an integer, write a function to determine if it is a power of two. Credit...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年04月23日 16:38
  • 1344

[LeetCode-231] Power of Two(判断一个数是不是2的若干次幂)

Given an integ这里写代码片er, write a function to determine if it is a power of two.【分析】如果一个数是2的若干次幂,那么二进制...
  • xy010902100449
  • xy010902100449
  • 2015年09月14日 19:59
  • 435

231. Power of Two [easy] (Python)

题目链接https://leetcode.com/problems/power-of-two/题目原文 Given an integer, write a function to determin...
  • coder_orz
  • coder_orz
  • 2016年05月05日 14:47
  • 1118

LeetCode 231: Power of Two

Given an integer, write a function to determine if it is a power of two. 判断一个数是否是2的幂,判断方法主要依据2的...
  • sunao2002002
  • sunao2002002
  • 2015年07月06日 18:34
  • 3843

[LeetCode] 231. Power of Two

Given an integer, write a function to determine if it is a power of two.class Solution { public: ...
  • sai_j
  • sai_j
  • 2017年07月05日 10:11
  • 50

[LeetCode]--231. Power of Two

Given an integer, write a function to determine if it is a power of two.Credits: Special thanks to ...
  • bug_moving
  • bug_moving
  • 2016年10月13日 17:20
  • 469

[leetcode] 231. Power of Two

Given an integer, write a function to determine if it is a power of two. 这道题是判断数字是否是2的乘方,题目难度为Eas...
  • TstsUgeg
  • TstsUgeg
  • 2016年03月20日 21:25
  • 236

LeetCode 231. Power of Two

问题描述: Given an integer, write a function to determine if it is a power of two. 判断一个数是否为2的次方 举例看...
  • u014221279
  • u014221279
  • 2016年06月16日 09:58
  • 108

Leetcode 231. Power of Two

Given an integer, write a function to determine if it is a power of two.public class Solution { ...
  • Hanwenwangad
  • Hanwenwangad
  • 2016年01月22日 04:48
  • 139
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目22:231. Power of Two
举报原因:
原因补充:

(最多只允许输入30个字)