| 28 | |
| 29 | const list = [] |
| 30 | const FibonacciRecursive = (num) => { |
| 31 | const isNeg = num < 0 |
| 32 | if (isNeg) num *= -1 |
| 33 | return (() => { |
| 34 | switch (list.length) { |
| 35 | case 0: |
| 36 | list.push(0) |
| 37 | return FibonacciRecursive(num) |
| 38 | case 1: |
| 39 | list.push(1) |
| 40 | return FibonacciRecursive(num) |
| 41 | case num + 1: |
| 42 | return list |
| 43 | default: |
| 44 | list.push(list.at(-1) + list.at(-2)) |
| 45 | return FibonacciRecursive(num) |
| 46 | } |
| 47 | })().map((fib, i) => fib * (isNeg ? (-1) ** (i + 1) : 1)) |
| 48 | } |
| 49 | |
| 50 | const dict = new Map() |
| 51 | const FibonacciRecursiveDP = (stairs) => { |