Напишіть мені рекурсивну функцію для розрахунку числа Фібоначчі
Нижче наведено рекурсивну функцію Python fib(n), яка обчислює n-е число Фібоначчі. Цей випадок поділяється на базовий і рекурсивний. Базовий випадок дається тим, що перші два терміни послідовності Фібоначчі є 0 і 1, так що fib(0) = 0 і fib(1) = 1. Рекурсивний випадок дається тим, що число Fibonacci f_n можна записати як суму двох попередніх чисел Fibonacci, так що f_n = f_{n-1} + f_{n-2}. Поклавши все це разом, ми отримаємо

«»
Деф ФІБ(n):
# Базова справа
Якщо n = 0:
Повернення 0
Якщо n = 1:
Повернення 1

# рекурсивний випадок
Повернення fib(n - 1) + fib(n - 2)
«»

Це правильно обчислить n-е число Фібоначчі для ненегативних цілих входів n. Однак, рекурсивне обчислення чисел Фібоначчі таким чином займає експоненціальний час у значенні n, тому цей код може бути дуже повільним для великих входів. Його можна поліпшити, запам'ятовуючи попередні результати або використовуючи нерекурсивний підхід. Прості ітеративні підходи можуть вирішити проблему швидше, а вирази закритої форми для числа Фібоначчі існують і оцінюються ще швидше.