A332058 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.
1, 2, -1, 3, 10, 2, -8, -26, -52, -85, -39, 19, 87, 170, 79, 186, 64, -68, -214, -367, -198, -385, -182, -396, -628, -876, -1145, -865, -566, -882, -1216, -1560, -1916, -2289, -1895, -1478, -1915, -1462, -1928, -2414, -2911, -2401
Offset: 1
Examples
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. 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. 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. And so on.
Links
- M. F. Hasler, Table of n, a(n) for n = 1..10000
- Eric Angelini, Re: Add or subtract my cumulative sum of digits, SeqFan list, Feb 24 2020.
Crossrefs
See A332056 for the variant considering sum of a(n) instead of digits.
Programs
-
Mathematica
Nest[Append[#, #[[-1]] + (2 Boole[OddQ@ #[[-1]] ] - 1)*Total[Flatten@ IntegerDigits[#]] ] &, {1}, 41] (* Michael De Vlieger, Feb 25 2020 *)
-
PARI
A332058_vec(N,a=1,s=-a)={vector(N,n, a-=(-1)^a*s+=sumdigits(a))}
-
Python
from itertools import count, islice def agen(): # generator of terms an, s = 1, 1 while True: yield an an = an + s if an&1 else an - s s += sum(map(int, str(abs(an)))) print(list(islice(agen(), 42))) # Michael S. Branicky, Oct 14 2024
Comments