LeetCode 231

Power of Two

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

 1 /*************************************************************************
 2     > File Name: LeetCode231.c
 3     > Author: Juntaran
 4     > Mail: [email protected]
 5     > Created Time: 2016年05月10日 星期二 02时55分46秒
 6  ************************************************************************/
 7
 8 /*************************************************************************
 9
10     Power of Two
11
12     Given an integer, write a function to determine if it is a power of two.
13
14  ************************************************************************/
15
16 #include "stdio.h"
17
18 int isPowerOfTwo(int n) {
19     int temp = (n>0 && !(n&(n-1)));
20     return temp;
21 }
22
23 int main()
24 {
25     int n = 9;
26     int ret = isPowerOfTwo(n);
27     printf("%d\n",ret);
28
29     n = 16;
30     ret = isPowerOfTwo(n);
31     printf("%d\n",ret);
32
33     return 0;
34 }
时间: 2024-12-20 10:56:47

LeetCode 231的相关文章

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: bo

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 [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; } }

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 231】Power of Two

Given an integer, write a function to determine if it is a power of two. 思路: 如果一个数是2的Power,那么该数的二进制串中只有一位为1,其余都为0.执行一次n & (n - 1)可消除最低位的一个1,若消除后为0,则说明该数是2的Power(n == 0 || n == -2147483648 时要特殊考虑). C++: 1 class Solution { 2 public: 3 bool isPowerOfTwo

[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

[leetcode]231. 2的幂

1.题目描述: 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 2.思路: 因为2的幂词方的二进制数只有一个1,可以使该数字不断右移.当移出第一个1之后,如果此时的数字为0,则为true,反之为false 3.代码: class Solution { public boolean isPowerOfTwo(i

nomasp 博客导读:Android、UWP、Algorithm、Lisp(找工作中……

Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸.本博客会持续更新.感谢您的支持.欢迎您的关注与留言.博客有多个专栏,各自是关于 Android应用开发 .Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 .而近期会加入的文章将主要是算法和Android.只是其他内容也会继续完好. About the Author 独立 Windows App 和

LeetCode 第 231 题 (Power of Two)

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) { if(n <= 0) return false; return !(n &