[leetcode] 231. Power of Two

来源:互联网 发布:淘宝刷皇冠多少钱 编辑:程序博客网 时间:2024/06/15 21:39

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


Solution 1

Idea: divide n by 2, and check the residual. 

class Solution {public:    bool isPowerOfTwo(int n) {        while (n!=0 && n%2==0){            n = n/2;        }        return n==1;            }};

Solution 2

Idea: 1 -- 1, 2 -- 10, 4 -- 100,... the highest bits are all 1. If minus 1, the left bit become 0 ,and others become 1s. Do bit logic and, should be 0;

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



0 0
原创粉丝点击