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

来源:互联网 发布:mac keynote 模板 编辑:程序博客网 时间:2024/06/05 15:07

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


0 0
原创粉丝点击