LeetCode 231 Power of Two(2的幂)

翻译

给定一个整型数,写一个函数来决定它是否是2的幂。

原文

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

分析

详情请看这篇文章:LeetCode 326 Power of Three(3的幂)(递归、Log函数)

看题号,326是本题的加强版,326是要求不能用循环或递归的……大家可以去看看上面那篇文章。

本题就直接贴我的代码了……

代码

class Solution {
public:
    bool isPowerOfTwo(int n) {
        double logAns = log10(n) / log10(2);
        return (logAns - int(logAns) == 0) ? true : false;
    }
};
时间: 2024-10-12 11:37:18

LeetCode 231 Power of Two(2的幂)的相关文章

[LeetCode]231. Power of Two判断是不是2的幂

/* 用位操作,乘2相当于左移1位,所以2的幂只有最高位是1 所以问题就是判断你是不是只有最高位是1,怎判断呢 这些数-1后形成的数,除了最高位,后边都是1,如果n&n-1就可以判断了 如果是2的幂,&的结果是全0 */ if (n<=0) return false; return ((n&(n-1))==0); 划重点: 一个数*2,出相当于左移一位 原文地址:https://www.cnblogs.com/stAr-1/p/8478279.html

Java [Leetcode 231]Power of Two

题目描述: Given an integer, write a function to determine if it is a power of two. 解题思路: 判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0. 代码如下: public class Solution { public boolean isPowerOfTwo(int n) { return (n > 0) && ( n & (n - 1)) == 0; } }

leetcode 231. Power of Two

Given an integer, write a function to determine if it is a power of two. class Solution { public: bool isPowerOfTwo(int n) { int num = 0; while (n > 0) { if (n &1) num++; n/=2; } if (num == 1) return true; return false; } };

Java for LeetCode 231 Power of Two

public boolean isPowerOfTwo(int n) { if(n<1) return false; while(n!=1){ if(n%2!=0) return false; n>>=1; } return true; }

Leetcode 232 Implement Queue using Stacks 和 231 Power of Two

1. 232 Implement Queue using Stacks 1.1 问题描述 使用栈模拟实现队列.模拟实现如下操作: push(x). 将元素x放入队尾. pop(). 移除队首元素. peek(). 获取队首元素. empty(). 判断队列是否为空. 注意:只能使用栈的标准操作,push,pop,size和empty函数. 1.2 方法与思路 本题和用队列实现栈思路一样,设两个辅助栈stk1和stk2. push(x): 将x入栈stk1. pop(): 依次将stk1中的元素p

231. Power of Two 342. Power of Four -- 判断是否为2、4的整数次幂

231. Power of Two Given an integer, write a function to determine if it is a power of two. class Solution { public: bool isPowerOfTwo(int n) { return n > 0 ? (n & (n-1)) == 0 : false; } }; 342. Power of Four Given an integer (signed 32 bits), write

leetCode(32):Power of Two

Given an integer, write a function to determine if it is a power of two. 2的幂的二进制表示中,必然只有一个"1",且不可能为负数. class Solution { public: bool isPowerOfTwo(int n) { if(n<0) {//若为负数则直接返回 return false; } int num=0; while(n) {//统计1的个数 n=n&(n-1); num++

Uva 11149 - Power of Matrix ( 矩阵快速幂 )

Uva 11149 -Power of Matrix ( 矩阵快速幂 ) #include <cstdio> #include <cstring> #define CLR( a, b ) memset( a, b, sizeof(a) ) #define MOD 10 #define MAX_SIZE 40 struct Mat { int r, c; int mat[MAX_SIZE][MAX_SIZE]; Mat( int _r = 0 , int _c = 0 ) { CLR

python leetcode 日记--231. Power of Two

题目: Given an integer, write a function to determine if it is a power of two. class Solution(object): def isPowerOfTwo(self, n): # """ :type n: int :rtype: bool """ 方法:分析2的幂次方的特点,发现2的任意次方的数,化成二进制时只有首位为1其余位为0,因此我的解决方法如下: class