A087808 a(0) = 0; a(2n) = 2a(n), a(2n+1) = a(n) + 1.
0, 1, 2, 2, 4, 3, 4, 3, 8, 5, 6, 4, 8, 5, 6, 4, 16, 9, 10, 6, 12, 7, 8, 5, 16, 9, 10, 6, 12, 7, 8, 5, 32, 17, 18, 10, 20, 11, 12, 7, 24, 13, 14, 8, 16, 9, 10, 6, 32, 17, 18, 10, 20, 11, 12, 7, 24, 13, 14, 8, 16, 9, 10, 6, 64, 33, 34, 18, 36, 19, 20, 11, 40, 21, 22, 12
Offset: 0
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
- N. J. A. Sloane and J. A. Sellers, On non-squashing partitions, Discrete Math., 294 (2005), 259-274.
Crossrefs
Programs
-
Haskell
import Data.List (transpose) a087808 n = a087808_list !! n a087808_list = 0 : concat (transpose [map (+ 1) a087808_list, map (* 2) $ tail a087808_list]) -- Reinhard Zumkeller, Mar 18 2015
-
Maple
S := 2; f := proc(n) global S; option remember; if n=0 then RETURN(0); fi; if n mod 2 = 0 then RETURN(S*f(n/2)); else f((n-1)/2)+1; fi; end;
-
Mathematica
a[0]=0; a[n_] := a[n] = If[EvenQ[n], 2*a[n/2], a[(n-1)/2]+1]; Array[a,76,0] (* Jean-François Alcover, Aug 12 2017 *)
-
PARI
a(n)=if(n<1,0,if(n%2==0,2*a(n/2),a((n-1)/2)+1))
-
Python
from functools import lru_cache @lru_cache(maxsize=None) def A087808(n): return 0 if n == 0 else A087808(n//2) + (1 if n % 2 else A087808(n//2)) # Chai Wah Wu, Mar 08 2022
-
Scheme
(define (A087808 n) (cond ((zero? n) n) ((even? n) (* 2 (A087808 (/ n 2)))) (else (+ 1 (A087808 (/ (- n 1) 2)))))) ;; Antti Karttunen, Oct 07 2016