Related Articles

# Baum Sweet Sequence

• Last Updated : 06 Aug, 2019

Baum Sweet Sequence is an infinite binary sequence of 0s and 1s. The nth term of the sequence is 1 if the number n has no odd number of contiguous zeroes in its binary representation, else the nth term is 0.

```The first few terms of the sequence are:
b1 = 1 (binary of 1 is 1)
b2 = 0 (binary of 2 is 10)
b3 = 1 (binary of 3 is 11)
b4 = 1 (binary of 4 is 100)
b5 = 0 (binary of 5 is 101)
b6 = 0 (binary of 6 is 110)
```

Given a natural number n. The task is to find the nth term of the Baum Sweet sequence, i.e, check whether it contains any consecutive block of zeroes of odd length.

```Input: n = 8
Output: 0
Explanations:
Binary representation of 8 is 1000. It
contains odd length block of consecutive 0s.
Therefore B8 is 0.

Input: n = 5
Output: 1

Input: n = 7
Output: 0
```

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

The idea is to run a loop through the binary representation of n and count the length of all the consecutive zero blocks present. If there is at-least one odd length zero block, then the nth term for the given input n is 0 else it is 1.

 `// CPP code to find the nth term of the``// Baum Sweet Sequence``#include ``using` `namespace` `std;`` ` `int` `nthBaumSweetSeq(``int` `n)``{``    ``// bitset stores bitwise representation``    ``bitset<32> bs(n);`` ` `    ``// len stores the number of bits in the ``    ``// binary of n. builtin_clz() function gives ``    ``// number of zeroes present before the ``    ``// leading 1 in binary of n``    ``int` `len = 32 - __builtin_clz(n);`` ` `    ``int` `baum = 1; ``// nth term of baum sequence``    ``for` `(``int` `i = 0; i < len;) {``        ``int` `j = i + 1;`` ` `        ``// enter into a zero block``        ``if` `(bs[i] == 0) {``            ``int` `cnt = 1;`` ` `            ``// loop to run through each zero block``            ``// in binary representation of n``            ``for` `(j = i + 1; j < len; j++) {`` ` `                ``// counts consecutive zeroes ``                ``if` `(bs[j] == 0)                   ``                    ``cnt++;``                ``else``                    ``break``;``            ``}`` ` `            ``// check if the number of consecutive``            ``// zeroes is odd``            ``if` `(cnt % 2 == 1)``                ``baum = 0;``        ``}``        ``i = j;``    ``}`` ` `    ``return` `baum;``}`` ` `// Driver Code``int` `main()``{``    ``int` `n = 8;``    ``cout << nthBaumSweetSeq(n);``    ``return` `0;``}`
Output:
```0
```

My Personal Notes arrow_drop_up