## Question

The **Fibonacci numbers**, commonly denoted `F(n)`

form a sequence, called the **Fibonacci sequence**, such that each number is the sum of the two preceding ones, starting from `0`

and `1`

. That is,

F(0) = 0, F(1) = 1 F(n) = F(n - 1) + F(n - 2), for n > 1.

Given `n`

, calculate `F(n)`

.

**Example 1:**

Input:n = 2Output:1Explanation:F(2) = F(1) + F(0) = 1 + 0 = 1.

**Example 2:**

Input:n = 3Output:2Explanation:F(3) = F(2) + F(1) = 1 + 1 = 2.

**Example 3:**

Input:n = 4Output:3Explanation:F(4) = F(3) + F(2) = 2 + 1 = 3.

**Constraints:**

`0 <= n <= 30`

## Python Solution

class Solution: def fib(self, N: int) -> int: d={0:0,1:1} def fib(N): if N in d: return d[N] else: ans=fib(N-1) + fib(N-2) d[N]=ans return ans return (fib(N))