Check whether the number has only first and last bits set | Set 2

Given a positive integer n, check whether only the first and last bits are set in the binary representation of n. Print ‘Yes’ or ‘No’.

Examples:

Input: 9
Output: Yes
(9)10 = (1001)2, only the first and
last bits are set.

Input: 15
Output: No
(15)10 = (1111)2, except first and last
there are other bits also which are set.



We have already discussed a solution here.

In this post, a simpler solution is discussed.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ to check whether the number has only
// first and last bits set
#include <bits/stdc++.h>
using namespace std;
  
// function to check whether the number has only
// first and last bits set
bool onlyFirstAndLastAreSet(unsigned int n)
{
    if (n == 1)
        return true;
    if (n == 2)
        return false;
    return (((n - 1) & (n - 2)) == 0);
}
  
// Driver program to test above
int main()
{
    unsigned int n = 9;
    if (onlyFirstAndLastAreSet(n))
        cout << "Yes";
    else
        cout << "No";
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java to check whether 
// the number has only
// first and last bits set
  
class GFG
{
// function to check whether
// the number has only
// first and last bits set
static boolean onlyFirstAndLastAreSet(int n)
{
    if (n == 1)
        return true;
    if (n == 2)
        return false;
    return (((n - 1) & 
             (n - 2)) == 0);
}
  
// Driver Code
public static void main(String[] args)
{
    int n = 9;
    if (onlyFirstAndLastAreSet(n))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
  
// This code is contributed
// by Smitha

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 to check whether
# the number has only
# first and last bits set
  
# function to check whether
# the number has only
# first and last bits set
def onlyFirstAndLastAreSet(n):
  
    if (n == 1): 
        return True
    if (n == 2): 
        return False
  
    return (((n - 1) & 
             (n - 2)) == 0)
  
# Driver Code
n = 9
if (onlyFirstAndLastAreSet(n)):
    print("Yes")
else:
    print("No")
      
# This code is contributed
# by Smitha

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# to check whether 
// the number has only
// first and last bits set
using System;
  
class GFG
{
// function to check whether
// the number has only
// first and last bits set
static bool onlyFirstAndLastAreSet(int n)
{
    if (n == 1)
        return true;
    if (n == 2)
        return false;
    return (((n - 1) & 
             (n - 2)) == 0);
}
  
// Driver Code
public static void Main()
{
    int n = 9;
    if (onlyFirstAndLastAreSet(n))
        Console.Write("Yes");
    else
        Console.Write("No");
}
}
  
// This code is contributed 
// by Smitha

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP to check whether the 
// number has only first and 
// last bits set
  
// function to check whether 
// the number has only first 
// and last bits set
function onlyFirstAndLastAreSet($n)
{
    if ($n == 1)
        return true;
    if ($n == 2)
        return false;
    return ((($n - 1) & 
             ($n - 2)) == 0);
}
  
// Driver Code
$n = 9;
if (onlyFirstAndLastAreSet($n))
    echo "Yes";
else
    echo "No";
      
// This code is contributed
// by Smitha
?>

chevron_right


Output:

Yes


My Personal Notes arrow_drop_up

Improved By : Smitha Dinesh Semwal