Fibbinary Numbers (No consecutive 1s in binary) – O(1) Approach

• Difficulty Level : Medium
• Last Updated : 08 Apr, 2021

Given a positive integer n. The problem is to check if the number is Fibbinary Number or not. Fibbinary numbers are integers whose binary representation contains no consecutive ones.
Examples :

Input : 10
Output : Yes
Explanation: 1010 is the binary representation
of 10 which does not contains any
consecutive 1's.

Input : 11
Output : No
Explanation: 1011 is the binary representation
of 11, which contains consecutive
1's.

Approach: If (n & (n >> 1)) == 0, then ‘n’ is a fibbinary number Else not.

C++

 // C++ implementation to check whether a number// is fibbinary or not#include using namespace std; // function to check whether a number// is fibbinary or notbool isFibbinaryNum(unsigned int n) {   // if the number does not contain adjacent ones  // then (n & (n >> 1)) operation results to 0  if ((n & (n >> 1)) == 0)    return true;   // not a fibbinary number  return false;} // Driver program to test aboveint main() {  unsigned int n = 10;  if (isFibbinaryNum(n))    cout << "Yes";  else    cout << "No";  return 0;}

Java

 // Java implementation to check whether// a number is fibbinary or notclass GFG {         // function to check whether a number    // is fibbinary or not    static boolean isFibbinaryNum(int n) {             // if the number does not contain        // adjacent ones then (n & (n >> 1))        // operation results to 0        if ((n & (n >> 1)) == 0)            return true;                 // not a fibbinary number        return false;    }         // Driver program to test above    public static void main(String[] args) {         int n = 10;         if (isFibbinaryNum(n) == true)            System.out.println("Yes");        else            System.out.println("No");    }} // This code is contributed by// Smitha Dinesh Semwal

Python3

 # Python3 program to check if a number# is fibinnary number or not # function to check whether a number# is fibbinary or notdef isFibbinaryNum( n):         # if the number does not contain adjacent    # ones then (n & (n >> 1)) operation    # results to 0    if ((n & (n >> 1)) == 0):        return 1             # Not a fibbinary number    return 0 # Driver coden = 10 if (isFibbinaryNum(n)):    print("Yes")else:    print("No")     # This code is contributed by sunnysingh

C#

 // C# implementation to check whether// a number is fibbinary or notusing System; class GFG {         // function to check whether a number    // is fibbinary or not    static bool isFibbinaryNum(int n) {             // if the number does not contain        // adjacent ones then (n & (n >> 1))        // operation results to 0        if ((n & (n >> 1)) == 0)            return true;                 // not a fibbinary number        return false;    }         // Driver program to test above    public static void Main() {         int n = 10;         if (isFibbinaryNum(n) == true)            Console.WriteLine("Yes");        else            Console.WriteLine("No");    }} // This code is contributed by vt_m.

PHP

 > 1))    // operation results to 0    if ((\$n & (\$n >> 1)) == 0)        return true;         // not a fibbinary number    return false;} // Driver code\$n = 10;if (isFibbinaryNum(\$n))    echo "Yes";else    echo "No"; // This code is contributed by mits?>

Javascript



Output :

Yes

Time Complexity: O(1).

My Personal Notes arrow_drop_up