# 1 to n bit numbers with no consecutive 1s in binary representation

Given a number n, our task is to find all 1 to n bit numbers with no consecutive 1s in their binary representation.

Examples :-

```Input : n = 4
Output : 1 2 4 5 8 9 10
These are numbers with 1 to 4
bits and no consecutive ones in
binary representation.

Input : n = 3
Output : 1 2 4 5
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

1) There will be 2n numbers with number of bits from 1 to n.
2) Iterate through all 2n numbers. For every number check if it contains consecutive set bits or not. To check, we do bit wise and of current number i and left shifted i. If the bitwise and contains a non-zero bit (or its value is non-zero), then given number doesn’t contain consecutive set bits.

## C++

 `// Print all numbers upto n bits ` `// with no consecutive set bits. ` `#include ` `using` `namespace` `std; ` ` `  `void` `printNonConsecutive(``int` `n) ` `{ ` `    ``// Let us first compute ` `    ``// 2 raised to power n. ` `    ``int` `p = (1 << n); ` ` `  `    ``// loop 1 to n to check  ` `    ``// all the numbers ` `    ``for` `(``int` `i = 1; i < p; i++) ` ` `  `        ``// A number i doesn't contain ` `        ``// consecutive set bits if ` `        ``// bitwise and of i and left ` `        ``// shifted i do't contain a ` `        ``// commons set bit. ` `        ``if` `((i & (i << 1)) == 0) ` `            ``cout << i << ``" "``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 3; ` `    ``printNonConsecutive(n); ` `    ``return` `0; ` `} `

## Java

 `// Java Code to Print all numbers upto  ` `// n bits with no consecutive set bits. ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` `    ``static` `void` `printNonConsecutive(``int` `n) ` `        ``{ ` `            ``// Let us first compute  ` `            ``// 2 raised to power n. ` `            ``int` `p = (``1` `<< n); ` ` `  `            ``// loop 1 to n to check  ` `            ``// all the numbers ` `            ``for` `(``int` `i = ``1``; i < p; i++) ` ` `  `            ``// A number i doesn't contain ` `            ``// consecutive set bits if ` `            ``// bitwise and of i and left ` `            ``// shifted i do't contain a ` `            ``// commons set bit. ` `            ``if` `((i & (i << ``1``)) == ``0``) ` `                ``System.out.print(i + ``" "``); ` `         `  `        ``} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``3``; ` `        ``printNonConsecutive(n); ` `    ``} ` `} ` ` `  `// This code is contributed by Mr. Somesh Awasthi `

## Python3

 `# Python3 program to print all numbers upto  ` `# n bits with no consecutive set bits. ` ` `  `def` `printNonConsecutive(n): ` ` `  `    ``# Let us first compute   ` `    ``# 2 raised to power n. ` `    ``p ``=` `(``1` `<< n) ` ` `  `    ``# loop 1 to n to check  ` `    ``# all the numbers ` `    ``for` `i ``in` `range``(``1``, p): ` ` `  `        ``# A number i doesn't contain ` `        ``# consecutive set bits if ` `        ``# bitwise and of i and left ` `        ``# shifted i do't contain a ` `        ``# common set bit. ` `        ``if` `((i & (i << ``1``)) ``=``=` `0``): ` `            ``print``(i, end ``=` `" "``) ` ` `  `# Driver code ` `n ``=` `3` `printNonConsecutive(n) ` ` `  `# This code is contributed by Anant Agarwal. `

## C#

 `// C# Code to Print all numbers upto  ` `// n bits with no consecutive set bits. ` `using` `System; ` ` `  `class` `GFG ` `{ ` `    ``static` `void` `printNonConsecutive(``int` `n) ` `    ``{ ` `        ``// Let us first compute ` `        ``// 2 raised to power n. ` `        ``int` `p = (1 << n); ` ` `  `        ``// loop 1 to n to check  ` `        ``// all the numbers ` `        ``for` `(``int` `i = 1; i < p; i++) ` ` `  `            ``// A number i doesn't contain ` `            ``// consecutive set bits if ` `            ``// bitwise and of i and left ` `            ``// shifted i do't contain a ` `            ``// commons set bit. ` `            ``if` `((i & (i << 1)) == 0) ` `                ``Console.Write(i + ``" "``); ` `         `  `    ``} ` ` `  `// Driver code ` `public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 3; ` `        ``printNonConsecutive(n); ` `    ``} ` `} ` `// This code is contributed by nitin mittal. `

## PHP

 ` `

Complexity O(2^n) because ‘for’ loop is run 2^n time.

Output:

```1 2 4 5
```

This article is contributed by Devanshu Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

My Personal Notes arrow_drop_up

Improved By : nitin mittal, Sam007

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.