Compruebe si el número solo tiene configurados el primer y el último bit – Part 1

Dado un entero positivo n . El problema es verificar si solo el primer y el último bit están establecidos en la representación binaria de n .
Ejemplos: 
 

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.

Enfoque: Los siguientes son los pasos:
 

  1. Si n == 1, devuelva «Sí».
  2. De lo contrario, compruebe si n-1 es una potencia de 2. Consulte esta publicación.

C++

// C++ to check whether the number has only
// first and last bits set
#include <bits/stdc++.h>
 
using namespace std;
 
// function to check whether 'n'
// is a power of 2 or not
bool powerOfTwo(unsigned int n)
{
    return (!(n & n-1));
}
 
// 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 powerOfTwo(n-1);   
}
 
// Driver program to test above
int main()
{
    unsigned int n = 9;
     
    if (onlyFirstAndLastAreSet(n))
        cout << "Yes";
    else
        cout << "No";   
     
    return 0;
}

Java

// Java program to check whether the
// number has only first and last
// bits set
import java.util.*;
 
class GFG
{
    // function to check whether 'n'
    // is a power of 2 or not
    static boolean powerOfTwo(int n)
    {
        return ((n & n - 1) == 0);
    }
 
    // function to check whether the number has 
    // only first and last bits set
    static boolean onlyFirstAndLastAreSet(int n)
    {
        if (n == 1)
            return true;
     
        return powerOfTwo(n-1);
    }
 
    // Driver program to test above
    public static void main (String[] args) {
        
       int n = Integer.parseUnsignedInt("9");
     
        if (onlyFirstAndLastAreSet(n))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
 
/* This code is contributed by Mr. Somesh Awasthi */

Python3

# Python3 program to check whether number
# has only first and last bits set
 
# function to check whether 'n'
# is a power of 2 or not
def powerOfTwo (n):
    return (not(n & n-1))
 
 
# function to check whether number 
# has only first and last bits set
def onlyFirstAndLastAreSet (n):
 
    if (n == 1):
        return True
    return powerOfTwo (n-1)
 
# Driver program to test above
n = 9
if (onlyFirstAndLastAreSet (n)):
    print('Yes')
else:
    print('No')
 
# This code is contributed by Shariq Raza

C#

// C# program to check whether the
// number has only first and last
// bits set
using System;
 
class GFG {
 
    // function to check whether 'n'
    // is a power of 2 or not
    static bool powerOfTwo(uint n)
    {
        return ((n & n - 1) == 0);
    }
 
    // function to check whether the number has
    // only first and last bits set
    static bool onlyFirstAndLastAreSet(uint n)
    {
        if (n == 1)
            return true;
 
        return powerOfTwo(n - 1);
    }
 
    // Driver program to test above
    public static void Main()
    {
 
        uint n = (uint)9;
 
        if (onlyFirstAndLastAreSet(n))
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
 
}
 
// This code is contributed by Sam007

PHP

<?php
// PHP to check whether the number
// has only first and last bits set
 
// function to check whether 'n'
// is a power of 2 or not
function powerOfTwo($n)
{
    return (!($n & $n - 1));
}
 
// 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 powerOfTwo($n - 1);    
}
 
// Driver Code
$n = 9;
 
if (onlyFirstAndLastAreSet($n))
    echo "Yes";
else
    echo "No";
 
// This code is contributed
// by Sach_Code
?>

Javascript

<script>
 
// Javascript to check whether the number has only
// first and last bits set
 
// function to check whether 'n'
// is a power of 2 or not
function powerOfTwo(n)
{
    return (!(n & n-1));
}
 
// 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 powerOfTwo(n-1);    
}
 
// Driver program to test above
var n = 9;
 
if (onlyFirstAndLastAreSet(n))
    document.write("Yes");
else
    document.write("No");    
     
</script>

Producción: 

Yes

Complejidad del tiempo – O(1)

Complejidad espacial – O(1)
Este artículo es una contribución de Ayush Jauhari . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *