zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)交替位二进制数 个人题解

    给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。

    示例 1:

    输入: 5
    输出: True
    解释:
    5的二进制数是: 101
    

    示例 2:

    输入: 7
    输出: False
    解释:
    7的二进制数是: 111
    

    示例 3:

    输入: 11
    输出: False
    解释:
    11的二进制数是: 1011
    

     示例 4:

    输入: 10
    输出: True
    解释:
    10的二进制数是: 1010

    做法比较直接明了,右移一次的末位二进制位和右移两次的末位二进制位对比,判断最后一位是否相同。循环到n为0,得到结果

    代码如下:

     1 class Solution {
     2     public boolean hasAlternatingBits(int n) {
     3         while(n>0)
     4         {
     5             if((n&1)==((n>>1)&1))
     6                 return false;
     7             n=n>>1;
     8         }
     9         return true;
    10     }
    11 }
  • 相关阅读:
    获取时间对象
    定时器
    undefined与return
    获取设置非行间样式
    NaN
    return,break与continue的区别
    数据类型
    程序的机器级表示
    计算机内数字的表示
    计算机系统漫游
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10091805.html
Copyright © 2011-2022 走看看