I see. You get e.g., f[1]=f[2]+f[3] which makes f[1] look undefined but you also get f[2] == -f[0] - f[2], f[3] = f[0] + f[6], f[4] = -f[2] - f[4], f[6] = f[0] + f[2] + f[4] i.e. exactly enough to solve uniquely. The same problem happens with the enumerating

generalized recursive functions. Some are nice, some undefined, some underdefined, but also some whose definition status is unclear and probably formally undecidable. These were studied by several people at the first NKS summer school (now the scope of the school is expanded with the new name

Wolfram Science Summer School).

Here is one way to approach this, by generating the equations and using Reduce.

Clear[equ, f]; equ[0] = (f[0] == 1);

equ[n_] :=

f[n] == Which[Mod[n, 6] == 0 && n != 0,

f[n/3] + f[Abs[n/3 - 2]] + f[Abs[n/3 + 2]],

Mod[n, 6] == 2, -(f[(n - 2)/3] + f[Abs[(n - 2)/3 - 2]]) ,

Mod[n, 6] == 4, -(f[(n + 2)/3] + f[Abs[(n + 2)/3 + 2]]) ,

Mod[n, 2] == 1, f[Abs[n - 3]] + f[n + 3] ]

equs20 = Array[equ, 20, 0]

Array[f, 20] /. ToRules[Reduce[equs20]]