力扣每日一题——2的幂

文章目录

  • 前言
  • 一、示例
  • 二、思路和代码
    • 1.思路
    • 2.代码


前言

题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方


一、示例

力扣每日一题——2的幂_第1张图片

二、思路和代码

1.思路

代码如下(示例):

排除不是2的倍数,然后一开始赋值变量为1,一直乘2,如果是2的幂,循环后,会相等。若不是2的幂,则大于参数n,返回false

2.代码

代码如下(示例):

bool isPowerOfTwo(int n){
    if(1 == n) {
        return true;
    }
    if(n%2 == 1) {
        return false;
    }
    long a = 1;
    while(a < n) {
        a *= 2;
        if(a == n) {
            return true;
        }
        if(a > n) {
            return false;
        }
    }
    return false;
}

结果如图所示:
力扣每日一题——2的幂_第2张图片


你可能感兴趣的:(C语言,leetcode,算法,职场和发展,c语言)