Given a three-digit number as the first term of a sequence, like 599,
define f as: f(599)=[(5+9) mod 10] [(9+9) mod 10] [(9+5) mod 10]. So the
function takes 599 to 484. If you apply f again, you get: 228, 400, 404,
448, ...etc. Continue this way, producing new terms. Will those terms cycle?

Proof:

(by Robert Israel) f is not periodic, but it is eventually periodic. The formulation in terms of three-digit numbers is a red herring. What
you really have is a map on (Z_{10})^{3} f(x,y,z) = (x+y, y+z, z+x) where Z_{10} is the integers mod 10. Clearly the range of f is contained in R = {(x,y,z): x+y+z is even}. In fact it is equal to R, because for any x, y, z with x+y+z=2w, f(w-y,w-z,w-x) = (2w-y-z,2w-z-x,2w-x-y) = (x,y,z). On R, f is periodic: f^{(12)} (x,y,z) = 5 (x+y+z) (1,1,1) + (x,y,z) = (x,y,z) if x+y+z is even. The period of any given element divides 12:

1 for (0,0,0).

3 for (5,5,0), (0,5,5) and (5,0,5).

4 for (2,2,2), (4,4,4), (8,8,8) and (6,6,6).

6 for (x,y,-x-y) with x and y not both divisible by 5.

12 for everything else.

In your example, (5,9,9) is not in R, but f(5,9,9)=(4,8,4) which has
period 12.

After Robert's proof, here is some Maple code to view the cycles:

> f:=proc(L)
> local NL,len,i;
> len:=nops(L);NL:=[];
> for i from 1 to len-1 do
> NL:=[op(NL),L[i]+L[i+1] mod 10];
> od;
> NL:=[op(NL),L[len]+L[1] mod 10];
> end:
> Orbit:=[[0,1,9]];# orbit seed
> for n from 1 to 13 do
> Orbit:=[op(Orbit),f(Orbit[nops(Orbit)])];
> od:
> with(plots):
> pointplot3d(Orbit,connect=true);