您的位置:首页 > 编程语言

leetcode:231 Power of Two-每日编程第十八题

2015-12-11 10:34 549 查看
Power of Two

Total
Accepted: 42645 Total
Submissions: 128399 Difficulty: Easy

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

思路:

1).0可不是2的阶乘,因此,要在函数头判断输入是否为0。

2).如果n是2的阶乘,那么n用二进制表示,就是1个1,后面跟着一串0。因此,只要把末尾所有0全部移除,再判断其是否为1,就得出结果了。

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if(n==0){
            return false;
        }
       while((n&1)==0){
           n>>=1;
       } 
       if(n==1){
           return true;
       }else{
           return false;
       }
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: