I have a knee‑
jerk reaction to being asked whether something should be static, which is no.
There are reasons why something should be static, like being shared between all instances, available without creating an instance, etc. But I cannot see that applying to recursion. My first question about recursion would be: why isn’t it a method‑local variable?
Why not create a class which encapsulates the recursive values and the iteration count. Then you can pass and return that reference, and increment its counter. Let’s try that for a Fibonacci number, using the classic exponential complexity version: