LeetCode-231. Power of Two

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

Example 1:

Input: 1
Output: true 
Explanation: 20 = 1

Example 2:

Input: 16
Output: true
Explanation: 24 = 16

Example 3:

Input: 218
Output: false

分析

这是一个求2的N次方的题目,较为基础.
第一种解题方法:直接求是不是即可(暴力判断);
第二种解法:位运算,判断所有位数上仅有一位是1其他的是0即可求得。

C语言

#include<stdio.h>
bool isPowerOfTwo(int n) {
            if(n<=0)
            {
                return false;
            }
            else if(n==1||n==2)
            {
                return true;
            }
            while(n>1)
            {
                if(n%2==1)
                {
                    return false;
                }
                else n=n/2;
            }
    return true;
}
int main()
{
    int n=218;
    printf("%d",isPowerOfTwo(n));
    return 0;
}
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注