# 14.9: One More Example

- Page ID
- 18883

Another common recursively-defined mathematical function is the Fibonacci sequence, which has the following definition:

\[\begin{align*} & fibonacci(1) = 1 \\[4pt] & fibonacci(2) = 1 \\[4pt] & fibonacci(n) = fibonacci(n - 1) + fibonacci(n - 2) \nonumber \end{align*} \]

Translated into Java, this function is:

public static int fibonacci(int n) { if (n == 1 || n == 2) { return 1; } return fibonacci(n - 1) + fibonacci(n - 2); }

If you try to follow the flow of execution here, even for small values of `n`

, your head will explode. But if we take a leap of faith and assume that the two recursive invocations work correctly, it is clear that their sum is the result.