Рекурсивный алгоритм вычисления последовательной пары xчисел Фибоначчи
$$ F(2k) = F(k)(2F(k+1) - F(k)) $$ (если нужно чётное по номеру число Фибоначчи)
$$ F(2k+1) = F(k)^2 + F(k+1)^2 $$ (если нужно нечётное по номеру число)
Написать рекурсивную функцию fib(int n, int *f, int *f1), которая записывает в f и f1, соответственно, n-е и n+1-е числа Фибоначчи (нумерация начинается с 0: 0, 1, 1, 2, 3, 5, 8, 13, …).
- Пример тестирующей программы:
0 1 6 7 8 10 30
0: 0 1: 1 6: 8 7: 13 8: 21 10: 55 30: 832040
Подсказка: вариант решения. Вычислим F(n/2) и F(n/2+1). Для соседних чётного и нечётного n результаты будут одни и те же… При этом для чётного n мы можем вычислим пару F(n) и F(n+1), но для нечётного это будет F(n-1) и F(n). Ну и ладно. Это ж числа Фибоначчи! Правильную пару легко довычислить, ибо F(n+1) = F(n-1) + F(n)
