📌  相关文章
📜  检查一个数字是否有两个相邻的置位

📅  最后修改于: 2021-04-26 05:42:39             🧑  作者: Mango

给定一个数字,您必须检查是否存在一对相邻的设置位。

例子 :

Input : N = 67
Output : Yes
There is a pair of adjacent set bit
The binary representation is 100011

Input : N = 5
Output : No

一个简单的解决方案是遍历所有位。对于每个设置的位,请检查是否还设置了下一个位。

一个有效的解决方案是将数字移位1,然后进行按位与运算。如果按位AND不为零,则有两个相邻的置1位。否则没有。

C++
// CPP program to check 
// if there are two
// adjacent set bits.
#include 
using namespace std;
  
bool adjacentSet(int n)
{
    return (n & (n >> 1));
}
  
// Driver Code
int main()
{
    int n = 3;
    adjacentSet(n) ? 
     cout << "Yes" : 
       cout << "No";
    return 0;
}


Java
// Java program to check
// if there are two
// adjacent set bits.
class GFG 
{
      
    static boolean adjacentSet(int n)
    {
        int x = (n & (n >> 1));
          
        if(x > 0)
            return true;
        else
            return false;
    }
      
    // Driver code 
    public static void main(String args[]) 
    {
  
        int n = 3;
          
        if(adjacentSet(n))
            System.out.println("Yes");
        else
            System.out.println("No"); 
  
    }
}
  
// This code is contributed by Sam007.


Python3
# Python 3 program to check if there 
# are two adjacent set bits.
  
def adjacentSet(n):
    return (n & (n >> 1))
  
# Driver Code
if __name__ == '__main__':
    n = 3
    if (adjacentSet(n)):
        print("Yes")
    else:
        print("No")
          
# This code is contributed by
# Shashank_Sharma


C#
// C# program to check
// if there are two
// adjacent set bits.
using System;
  
class GFG 
{
    static bool adjacentSet(int n)
    {
        int x = (n & (n >> 1));
          
        if(x > 0)
            return true;
        else
            return false;
    }
      
    // Driver code 
    public static void Main ()
    {
        int n = 3;
          
        if(adjacentSet(n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
          
}
  
// This code is contributed by Sam007.


php
> 1));
}
  
// Driver Code
$n = 3;
adjacentSet($n) ? 
   print("Yes") : 
     print("No");
  
// This code is contributed by Sam007.
?>


输出 :

Yes