【Power of Two】cpp
2015-07-22 07:23
239 查看
题目:
Given an integer, write a function to determine if it is a power of two.
代码:
tips:
首先的思路是bit-munipulation
检查int中有多少个1
学习了一个更简洁的(https://leetcode.com/discuss/45017/5-lines-o-1-space%26time-c-solution-no-hash)
自己优化了一下 一行代码AC。
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; int countOne = 0; for ( int i=0; i<sizeof(n)*8 && countOne<=1; ++i ) { countOne += (n>>i) & 1; } return countOne==1; } };
tips:
首先的思路是bit-munipulation
检查int中有多少个1
学习了一个更简洁的(https://leetcode.com/discuss/45017/5-lines-o-1-space%26time-c-solution-no-hash)
自己优化了一下 一行代码AC。
class Solution { public: bool isPowerOfTwo(int n) { return n<=0 ? false : !(n & (n-1)); } };
相关文章推荐
- 《C语言及程序设计》课程主页
- 黑马程序员-ios学习笔记 c语言 冒泡排序
- C语言之函数调用10—重复函数的多次调用
- 最大公约数和最小公倍数问题
- C语言之函数调用09—判断一个数是否为素数
- 初始化列表和构造函数
- 黑马程序员—IOS基础之C语言—数组与指针
- C语言之函数调用08—暴力法求4个数的最大公约数和最小公倍数
- C++中 explicit的用法
- C语言之函数调用07—求4个数的最大公约数和最小公倍数
- C语言之函数调用06—彩球排列
- 初学iOS开发C语言基础
- c语言实现二分搜索算法
- C++11中,获取随机数的新方法default_random_engine
- c++11信号量实现
- c++11线程池实现
- 深入搜索C++对象模型------关于对象
- c语言-遍历pci设备(2)mmio访问
- Coins
- 变量及函数的生存期、作用范围、链接属性