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

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 <bits/stdc++.h>` `using` `namespace` `std;` `// function to check whether a number` `// is fibbinary or not` `bool` `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 above` `int` `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 not` `class` `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 not` `def` `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 code` `n ` `=` `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 not` `using` `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

`<?php` `// PHP implementation to check whether` `// a number is fibbinary or not` `// function to check whether a number` `// is fibbinary or not` `function` `isFibbinaryNum(` `$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 code` `$n` `= 10;` `if` `(isFibbinaryNum(` `$n` `))` ` ` `echo` `"Yes"` `;` `else` ` ` `echo` `"No"` `;` `// This code is contributed by mits` `?>` |

## Javascript

`<script>` `// JavaScript program implementation to find whether` `// a number is fibbinary or not` ` ` ` ` `// function to check whether a number` ` ` `// is fibbinary or not` ` ` `function` `isFibbinaryNum(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 code` ` ` `let n = 10;` ` ` ` ` `if` `(isFibbinaryNum(n) == ` `true` `)` ` ` `document.write(` `"Yes"` `);` ` ` `else` ` ` `document.write(` `"No"` `);` `// This code is contributed by souravghosh0416.` `</script>` |

**Output :**

Yes

Time Complexity: O(1).