OFFSET
0,11
COMMENTS
LINKS
FORMULA
a(n) = A033264(n) for n > 0 since strings of 0's alternate with strings of 1's. - Jonathan Sondow, Jan 17 2016
a(n) = a(2*n + 1) = a(4*n + 2) - 1, if n > 0. - Michael Somos, Nov 04 2016
EXAMPLE
G.f. = 1 + x^2 + x^4 + x^5 + x^6 + x^8 + x^9 + 2*x^10 + x^11 + x^12 + x^13 + x^14 + ...
MATHEMATICA
a[n_] := SequenceCount[IntegerDigits[n, 2], {Longest[0..]}];
Table[a[n], {n, 0, 101}] (* Jean-François Alcover, Oct 18 2021 *)
PROG
(Haskell)
a087116 0 = 1
a087116 n = f 0 n where
f y 0 = y
f y x = if r == 0 then g x' else f y x'
where (x', r) = divMod x 2
g z = if r == 0 then g z' else f (y + 1) z'
where (z', r) = divMod z 2
-- Reinhard Zumkeller, Mar 31 2015
(PARI)
a(n) = if (n == 0, 1, hammingweight(bitxor(n, n>>1)) >> 1);
vector(102, i, a(i-1)) \\ Gheorghe Coserea, Sep 17 2015
(Python)
def A087116(n):
return sum(1 for d in bin(n)[2:].split('1') if len(d)) # Chai Wah Wu, Nov 04 2016
CROSSREFS
KEYWORD
nonn
AUTHOR
Reinhard Zumkeller, Aug 14 2003
STATUS
approved