login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

a(1) = 1; a(n+1) = a(n) +- (sum of digits of a(1) up to a(n)), with "+" when a(n) is odd, or "-" if even.
2

%I #27 Dec 23 2024 14:53:46

%S 1,2,-1,3,10,2,-8,-26,-52,-85,-39,19,87,170,79,186,64,-68,-214,-367,

%T -198,-385,-182,-396,-628,-876,-1145,-865,-566,-882,-1216,-1560,-1916,

%U -2289,-1895,-1478,-1915,-1462,-1928,-2414,-2911,-2401

%N a(1) = 1; a(n+1) = a(n) +- (sum of digits of a(1) up to a(n)), with "+" when a(n) is odd, or "-" if even.

%C The graph appears to have a shape similar to that of Mertens function A002321, with increasingly large "mountains" and "valleys":

%C Successive record values of opposite sign are a(2) = 2, a(3) = -1, a(5) = 10, a(10) = -85, a(16) = 186, a(222) = -75573, a(391) = 26186, a(658) = -341791, a(987) = 134304, a(1831) = -1820815, a(2476) = 393048, a(2692) = -2089141, a(3321) = 1816290, a(6114) = -8650189, ...

%H M. F. Hasler, <a href="/A332058/b332058.txt">Table of n, a(n) for n = 1..10000</a>

%H Eric Angelini, <a href="https://web.archive.org/web/*/http://list.seqfan.eu/oldermail/seqfan/2020-February/020508.html">Re: Add or subtract my cumulative sum of digits</a>, SeqFan list, Feb 24 2020.

%e a(1) = 1 is odd, so we add the partial sum (so far equal to a(1)) to get the next term, a(2) = 2.

%e Now a(2) = 2 is even, so we subtract the sum of the digits of a(1) and a(2), 1 + 2 = 3 to get a(3) = -1.

%e Since a(3) = -1 is odd, we add the sum of the digits of a(1), a(2) and a(3), 1 + 2 + 1 = 4 to get a(4) = 3.

%e And so on.

%t Nest[Append[#, #[[-1]] + (2 Boole[OddQ@ #[[-1]] ] - 1)*Total[Flatten@ IntegerDigits[#]] ] &, {1}, 41] (* _Michael De Vlieger_, Feb 25 2020 *)

%o (PARI) A332058_vec(N,a=1,s=-a)={vector(N,n, a-=(-1)^a*s+=sumdigits(a))}

%o (Python)

%o from itertools import count, islice

%o def agen(): # generator of terms

%o an, s = 1, 1

%o while True:

%o yield an

%o an = an + s if an&1 else an - s

%o s += sum(map(int, str(abs(an))))

%o print(list(islice(agen(), 42))) # _Michael S. Branicky_, Oct 14 2024

%Y See A332056 for the variant considering sum of a(n) instead of digits.

%K sign,base,changed

%O 1,2

%A _Eric Angelini_ and _M. F. Hasler_, Feb 24 2020