## fibonacci – The Fibonacci Sequence

Write a program that computes numbers in the fibonacci sequence. This sequence is defined recursively as follows:

• F₀ = 0
• F₁ = 1
• Fₙ = Fₙ₋₁ + Fₙ₋₂

That is, the zeroth Fibonacci number is zero and the first Fibonacci number is one. Other Fibonacci numbers are given by the sum of its two predecessors. The first 10 numbers in the Fibonacci sequence are: 0, 1, 1, 2, 3, 5, 8, 13, 21 and 34.

### Input and output

Input will consist of several lines, each with a single integer n indicating the position in the Fibonacci sequence.

0 ≤ n ≤ 42

For each line of input, output should contain a line with a corresponding number Fₙ indicating the Fibonacci number in position n.

#### Example input

``````3
8
6
``````

#### Example output

``````2
21
8
``````

### The `fibonacci` function

Your program should contain a `fibonacci` function that takes an integer and returns an integer. Please refer to the information for your chosen language:

• C prototype: `int fibonacci(int n)`
• Haskell type: `fibonacci :: Int -> Int`
• Python definition: `def fibonacci(n):`
• C++ prototype: `int fibonacci(int n)`
• C# definition: `public static int Fibonacci(int n)` inside a public class `Program`
• Java definition: `public static int fibonacci(int n)` inside a public class `Fibonacci`
• JavaScript definition: `function fibonacci(n)`
• Lua definition: `function fibonacci (n)`
• Ruby definition: `def factorial(n)`

Your function is expected to have good performance. The maximum expected complexity is O(n).

Specifically for this exercise when using Python, JavaScript, Lua or Ruby, avoid using `sys.exit()`, `process.exit()`, `os.exit()` or `exit`, as your program is appended with some extra assertions in one of the test sets.

### Scoring

• 1/6: works for the above example albeit in an incorrect format
• 2/6: works for the above example in the correct format
• 3/6: works for other examples
• 4/6: has good performance
• 5/6: works for edge cases
• 6/6: implements the `fibonacci` function

try first: factorial fibonacci1

try next: index-string